Прежде чем понять, как работает цикл, давайте поговорим об объектах 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) в массиве. Поскольку мы знаем, что можем ввести объект, чтобы получить значение, используя обозначение скобок, мы используем этот трюк, чтобы получить количество фруктов и добавить его к общему количеству.
Удачного кодирования!
Вот несколько интересных ссылок для более глубокого понимания: