#javascript #arrays #iteration
#javascript #массивы #итерация
Вопрос:
Я хотел бы выполнить итерацию по массиву javascript (вложенные объекты: на основе коллекции Json) и собрать данные из его объектов. Но если данные объекта недоступны, пропустите его и перейдите к следующему объекту, соответственно. продолжить итерацию. В настоящее время эта ошибка появляется, если данные недоступны в соответствующем объекте: Uncaught TypeError: Cannot read property 'hk5' of undefined
Как я могу сначала проверить, доступны ли данные (далее hk5)?
Перебор всех «объектов данных»
for (var i = 0; i < data.collection.items.length; i ) {
var data = data.collection.items[i].data[2].value.packet_data_field.application_data_params.hk5;
console.log(belaMode);
}
Спасибо!
Комментарии:
1. С помощью
if
инструкции .if
инструкции позволяют выполнять код с условными условиями. Они выглядят какif (some condition) { /*do something if true */ } else { /* do something if false */}
Ответ №1:
for (var i = 0; i < data.collection.items.length; i ) {
if(typeof(data.collection.items[i].data[2].value.packet_data_field.application_data_params) != 'undefined'){
var data = data.collection.items[i].data[2].value.packet_data_field.application_data_params.hk5;
}
console.log(belaMode);
}
Комментарии:
1. Вы зашли на одно свойство слишком далеко. Операционная система хочет проверить, не определено ли значение application_data_params .
Ответ №2:
if(data.collection.items[i].data[2].value.packet_data_field.application_data_params!=undefined){}