Задать вопрос
@iswik

Почему цикл for in возвращает undefined?

В цикле for in при обращении к свойству объекта через точку выводит в консоль undefined
"use strict";

const car = {
    color: "blue",
    width: 5,
    height: 1.7,
    names: {
        first: "nissan",
        second: "toyota"
    }
};

for (let keys in car) {
    console.log(car.keys);
}

В то время как при обращении через [] выводит правильное значение
"use strict";

const car = {
    color: "blue",
    width: 5,
    height: 1.7,
    names: {
        first: "nissan",
        second: "toyota"
    }
};

for (let keys in car) {
    console.log(car[keys]);
}


Почему?
  • Вопрос задан
  • 317 просмотров
Подписаться 1 Простой 2 комментария
Решения вопроса 1
@dispache
Квадратные скобки позволяют обратиться к свойству, имя которого может быть результатом выражения. Например, имя свойства может храниться в переменной.
В твоем случае :
1) keys = "color"
2) keys = "width"
и т.д
Запись через точку не позволяет этого сделать,потому что так устроен синтаксис языка.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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