Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Итерации цикла for-in (https://javascript.ru/forum/dom-window/80310-iteracii-cikla.html)

djekokma 21.05.2020 08:48

Итерации цикла for-in
 
Во второй итерации появляется ошибка: "ReferenceError: Cannot access 'b' before initialization".
Где я должен объявить переменную "b" для ее инициализации?
Как с помощью цикла for-in мне добраться до значений ключей "age" и "rating"?
const data = {
  "Grace": {"age": 5,"rating": 2000},
  "Lily": {"age": 10,"rating": 1000},
  "Oscar": {"age": 15,"rating": 900}
}
 
for (let a in data) {
  console.log(a, data[a])
 
  for (let b in data[a][b]) { //Здесь вылазит ошибка
    console.log(data[a][b]) // Вконсоли выводятся значения ключей
  }
}

рони 21.05.2020 08:59

Цитата:

Сообщение от djekokma
добраться до значений ключей "age" и "rating"?

const data = {
  "Grace": {"age": 5,"rating": 2000},
  "Lily": {"age": 10,"rating": 1000},
  "Oscar": {"age": 15,"rating": 900}
}

for (let {age, rating} of Object.values(data)) {
  console.log(age, rating)
}

рони 21.05.2020 09:02

Цитата:

Сообщение от djekokma
 for (let b in data[a][b]) { //Здесь вылазит ошибка

for (let b in data[a])

djekokma 21.05.2020 09:25

Цитата:

Сообщение от рони (Сообщение 524622)
for (let b in data[a])

//выводятся только ключи "age" и "rating". Мне нужно добраться до значений

djekokma 21.05.2020 09:34

Цитата:

Сообщение от рони (Сообщение 524621)
for (let {age, rating} of Object.values(data)) {
  console.log(age, rating)
}

//Ошибка "TypeError: Cannot convert undefined or null to object"

рони 21.05.2020 09:40

djekokma,
здесь код работает? в data у вас есть что-то?

djekokma 21.05.2020 09:45

Не понял вопрос. В data есть вышеуказанный объект

рони 21.05.2020 09:45

Цитата:

Сообщение от djekokma
Мне нужно добраться до значений

значения и выводятся
что не так?
<script>
const data = {
  "Grace": {"age": 5,"rating": 2000},
  "Lily": {"age": 10,"rating": 1000},
  "Oscar": {"age": 15,"rating": 900}
}

for (let a in data) {
  for (let b in data[a]) {
    document.write(data[a][b]+"<br>")
  }
}

  </script>


<script>
const data = {
  "Grace": {"age": 5,"rating": 2000},
  "Lily": {"age": 10,"rating": 1000},
  "Oscar": {"age": 15,"rating": 900}
}

for (let {age, rating} of Object.values(data)) {
  document.write([age, rating] + "<br>")
}

  </script>

djekokma 21.05.2020 09:54

Извиняюсь.
Спасибо.


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