2015-02-01 2 views
1

У меня есть 2D-массив. В настоящее время я получаю доступ к этому массиву с использованием таких обозначений, как:Безопасный способ проверить, существует ли элемент массива?

myArray[5][9] (например).

Что такое безопасный способ , чтобы проверить, существует ли определенный элемент массива? Например, предположим, что я перекручивание через массив и извлекаем свойство каждого элемента массива следующим образом:

myArray[5][9].firstName

Я тогда пришел к myArray[9][11].firstName (к примеру), который не существует. Ясно, что это вызовет исключение, поскольку элемент не существует.

Как я могу справиться с этим? Я не перебираю весь массив (я получаю его содержимое случайно и говорю, используя myArray.length в цикле for не будет работать.

Есть ли функция/метод JS для проверки того, существует ли элемент массива?

Спасибо.

+1

'если (туАггау [9] [11] == неопределенная && ' firstname 'в myArray [9] [11]) ' – adeneo

+0

Отлично, спасибо! – Jordan

ответ

1

как

if (!('firstname' in myArray[i][j])) { ... } 
2

Просто проверьте его if состояние.

if(myArray[i][j].firstName){ 
} 
1

Вы можете использовать метод hasOwnProperty, чтобы проверить, если элемент массива существует:

if (myArray.hasOwnProperty(x) && myArray[x].hasOwnProperty(y)) { 
    var name = myArray[x][y].firstName; 
} 

Это проверяет оба измерения. Если вы знаете, что первый индекс (x в примере) всегда находится внутри диапазона, вы можете пропустить первый тест.

Если вы храните некоторые другие значения в массиве также, вам нужно будет проверить, если элемент имеет свойство firstName:

if (myArray.hasOwnProperty(x) && myArray[x].hasOwnProperty(y) && myArray[x][y].hasOwnProperty('firstName')) { 
    var name = myArray[x][y].firstName; 
} 
Смежные вопросы