JavaScript « Проверка многомерности массива

Не сможете ли помочь в следующем.
Необходимо выполнение функции при соблюдении условия, что элемент массива является массивом.
var pict= [ [url1,comm1], [url2,comm2], url3, url4 ]
Соответственно условие должно сработать в первом и втором элементах массива pict...

1 ответов


Не очень понял, что вам нужно. Но проверить является ли элемент массивом просто:


object instanceof Array === true
 
instanceof - ключевое слово. В данном примере мы проверяем - является ли подопытный объект "наследником" объекта Array, который, в свою очередь, является базовым объектом (прототипом) для всех новых массивов. Проверять является ли объект массивом путём поиска спец.свойств строго не рекомендую, ибо это потом вам может дорого стоить при поиске внезапной непонятной ошибки, у которой невесть откуда ноги растут :)

В JavaScript есть необходимый для этого оператор typeof, который вернёт тип переменной в виде строкового значения. Проблема в том, что для массивов (как, впрочем, и для всех остальных «нескалярных» типов данных) этот оператор вернёт тип "object".
Но можно пойти на хитрость: проверять на существование у переменной метода, характерного только для типа переменной массив. Например метод reverse. В вашем случае это примерно так:


for(var key in pict)
{
  // если pict[key] — массив, значит нам доступен метод reverse,
  // а значит условие if станет равным true
  if(pict[key].reverse)
  {
    alert('Это массив');
  }
  else
  {
    alert('Это НЕ массив');
  }
}