Newto
@Newto

Как правильно пробежать цикл?

Есть код
for(i = 0; i <= obj[0].length; i++) {
    str = str + obj[0][i].name;
}


Если написать console.log(obj[0].[1]) то он выведет ожидаемый, верный результат.
Однако в цикле программа ругается "Cannot read property 'name' of undefined", в то время как i равна 1.
В чем тут загвоздка?
  • Вопрос задан
  • 61 просмотр
Решения вопроса 1
wapster92
@wapster92 Куратор тега JavaScript
const arr = [
  [
    {name: 'One'}, 
    {name: 'Two'}, 
    {name: 'Three'},
  ]
];
let str = '';
for(let i = 0; i < arr[0].length; i++) {
  str = str + arr[0][i].name;
}

console.log(str) // "OneTwoThree"

У тебя условие неверное. length показывает длину в данном примере длина 3, но в цикле i c условием i <= arr[0].length на последней итерации равна 3, но элемента массива 3 нет. И лучше определять переменные и называть лучше, а то ты итерируешь объект, а не массив судя по имени переменной
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы