Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   hasOwnProperty (https://javascript.ru/forum/dom-window/77283-hasownproperty.html)

SolomonRei 14.04.2019 14:32

hasOwnProperty
 
Добрый день!
Получаю массив с сервера.У меня идет фильтрация,поэтому иногда массив имеет дополнительное вложение(массив),а иногда нет.
Я пытаюсь это проверить так
if(data[i][0][0].hasOwnProperty('Loan')) {
}


перебираю вот так
for (var i in data) {}

Когда есть дополнительный массив,все отлично срабатывает,но когда его нету,то соответственно нету и ключей [0][0] и выходит ошибка
main.js:346 Uncaught TypeError: Cannot read property 'hasOwnProperty' of undefined
    at Object.success (main.js:346)

Как мне избавиться этой ошибки.Мне нужна функция,которая будет возвращать false или true.Спасибо.

Белый шум 14.04.2019 15:39

function checkData(data){
  var i = 0;
  if( data[i].length && data[i][0].length && data[i][0][0].hasOwnProperty('Loan') ){
    alert('Loan: ' + data[i][0][0].Loan);
  } else {
    alert('--No array--');
  }
}

var d=[0, 1, 2];
checkData(d);
d[0] = [0, 1];
checkData(d);
d[0][0] = [0];
checkData(d);
d[0][0][0] = {'Loan': 'Ok'};
checkData(d);


Часовой пояс GMT +3, время: 16:01.