Прежде чем понять, как работает цикл, давайте поговорим об объектах JavaScript. Помните, когда мы объявляли переменную с помощью ключевых слов let, const или var? Мы устанавливаем идентификатор или имя переменной равным значению. Переменная JavaScript может содержать только одно значение, например:

let fruit = "apple";

Где плод - это идентификатор или имя переменной, а яблоко - это ценить. Допустим, мы купили свежие фрукты на фермерском рынке. Как мы можем сохранить все фрукты и количество фруктов в одной переменной? Да, вы угадали! Мы можем использовать объекты, потому что они могут содержать много значений. В частности, пары "ключ-значение" заключены в фигурные скобки. Key - это свойство, а value - это то, чему мы его присвоили. Это может быть строка, число, массив, определение объекта или функции. Прежде чем мы начнем цикл, позвольте освежить нашу память о том, как получить доступ к парам ключ-значение объекта.

Доступ к парам "ключ-значение" объекта

let fruit = {
            name: ["apple", "orange", "grape"],
            fruitCount: 30
            }
console.log(fruit.name) // [ 'apple', 'orange', 'grape' ]
console.log(fruit["name"]) // [ 'apple', 'orange', 'grape' ]
console.log(Object.values(fruit)) // [ [ 'apple', 'orange', 'grape' ], 30 ]

Здесь мы используем скобки, точечную запись (.) И метод (объект) Object.values ​​для доступа к значению объекта.

for… in loop

let fruitCount = { 
   apple : 2, 
   orange: 3, 
   grape: 6 
}

В приведенном выше примере в качестве ключа используются названия фруктов, а количество фруктов - как значение. . А что, если мы хотим посчитать общее количество фруктов?

let totalCount = 0
for(let key in fruitCount){
      totalCount += fruitCount[key]
  }
console.log(totalCount); // 11

Здесь мы перебираем каждое свойство объекта, используя цикл for..in. Используя этот метод, у нас теперь есть доступ к значениям, используя обозначение скобок на самом объекте.

Обычно мы используем цикл for..in для перебора свойств объекта. Проверьте, существует ли значение для ключа, отобразите пары ключ-значение с помощью console.log. На самом деле это отличный инструмент для отладки. Важно помнить, что for..in не рекомендуется использовать с массивами, поскольку важен порядок индексации.

for… цикл

Есть другой способ сделать это, используя метод Object.keys, который принимает объект в качестве аргумента и возвращает массив ключей.

let fruitCount = { apple : 2,
                   orange: 3,
                   grape: 6 
}
let fruitArray = Object.keys(fruitCount)
  let totalCount = 0
 for (let i = 0; i < fruitArray.length; i++) {
     let fruitName = fruitArray[i];
     totalCount += fruitCount[fruitName]
}
console.log(totalCount); // 11

В этом примере мы возвращаем массив ключей, который мы сохранили в переменной с именем fruitArray. Используя цикл for…, мы перебираем каждое fruitName (keys) в массиве. Поскольку мы знаем, что можем ввести объект, чтобы получить значение, используя обозначение скобок, мы используем этот трюк, чтобы получить количество фруктов и добавить его к общему количеству.

Удачного кодирования!

Вот несколько интересных ссылок для более глубокого понимания: