Обход массива объектов циклом
Массивы объектов обычно обрабатывают циклом. В цикле for...of переменная цикла на каждой итерации хранит один целый объект, поэтому его свойства читают через точку:
const pets = [
{ name: "Рекс", species: "собака", age: 3 },
{ name: "Белла", species: "кошка", age: 2 },
{ name: "Киви", species: "попугай", age: 4 }
];
for (const pet of pets) {
console.log(`${pet.name} — ${pet.species}.`);
}Рекс — собака.
Белла — кошка.
Киви — попугай.На первой итерации pet хранит объект Рекса, на второй — Беллы, на третьей — Киви. Хорошая привычка — называть массив во множественном числе, а переменную цикла — в единственном (pets, pet). Тогда код читается почти как предложение: для каждого питомца из питомцев.
Приёмы из урока про циклы работают и здесь. Чтобы сложить возрасты всех питомцев, прибавляйте возраст одного питомца на каждой итерации:
let totalAge = 0;
for (const pet of pets) {
totalAge += pet.age;
}
console.log("Общий возраст:", totalAge);Общий возраст: 9А с if внутри цикла можно выбрать только часть объектов, например питомцев старше 2 лет:
for (const pet of pets) {
if (pet.age > 2) {
console.log(pet.name);
}
}Рекс
КивиЧастая ошибка — забыть свойство: totalAge += pet; прибавляет весь объект вместо его возраста. Результат — не число, а странный текст вроде 0[object Object][object Object][object Object].
Задание
- 1
Напишите цикл
for...of, который проходит поcartи выводит название и цену каждого товара через двоеточие, напримерКорм для собак: 250. - 2
Ниже сложите цены всех товаров и выведите результат в виде
Итого: 535. - 3
Наконец, выведите названия товаров, которые стоят меньше 100, каждое на своей строке.