Qurel
@Qurel

Как циклом вывести значения определенного ключа?

Есть массив из объектов, не получается вывести циклом значения определенного ключа, в консоли получаю undefined:
Codepen
  • Вопрос задан
  • 104 просмотра
Решения вопроса 3
for (let i = 0; i < record.messages.length; i++) {
	console.log(record.messages[i].text);
}
Ответ написан
Комментировать
Seasle
@Seasle Куратор тега JavaScript
Потому что Вы сначала перебираете все элементы, и внутри перебираете все ключи каждого элемента. Выходит такая ситуация, что Вы хотите получить свойство text у какого-то значения. Например:
record.messages[0]['item_apply_id'].text
record.messages[1]['add_date'].text

Поэтому не работает. Если хотите получить все ключи каждого элемента, можно изменить цикл следующим образом:
for (let i = 0; i < record.messages.length; i++) {
    for (let message in record.messages[i]) {
        console.log(i, message, record.messages[i][message]);
    }
}

Вывод следующий:
0 "id" "2222"
0 "item_apply_id" "693575"
0 "text" "aaaaaa"
0 "uid" "283238"
0 "add_date" "2020-07-20 19:19:12"

Если хотите получить только значения text каждого элемента, следует использовать такой цикл:
for (let i = 0; i < record.messages.length; i++) {
    console.log(record.messages[i].text);
}

Также, цикл можно заменить на for-of.
Ответ написан
Tim-A-2020
@Tim-A-2020
record.messages.forEach(item => console.log(item.text))


for (let item of record.messages) {
     console.log(item.text);
 }
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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