Используйте цикл for-in для перебора элементов массива
В этом шаге вы узнаете о цикле for-in в JavaScript, который предоставляет простой способ итерировать по свойствам объекта или элементам массива.
Создайте новый файл с именем forInLoop.js в директории ~/project с использованием WebIDE:
// Итерирование по массиву с использованием цикла for-in
let fruits = ["apple", "banana", "cherry", "date"];
console.log("Итерирование по индексам массива:");
for (let index in fruits) {
console.log(`Индекс: ${index}, Фрукт: ${fruits[index]}`);
}
// Итерирование по объекту с использованием цикла for-in
let student = {
name: "John Doe",
age: 22,
major: "Computer Science",
gpa: 3.8
};
console.log("\nИтерирование по свойствам объекта:");
for (let property in student) {
console.log(`${property}: ${student[property]}`);
}
// Практический пример: вычисление общей стоимости товаров
let shoppingCart = [
{ name: "Ноутбук", price: 1000 },
{ name: "Наушники", price: 100 },
{ name: "Мышь", price: 50 }
];
console.log("\nВычисление общей стоимости:");
let totalPrice = 0;
for (let index in shoppingCart) {
totalPrice += shoppingCart[index].price;
}
console.log(`Общая стоимость: $${totalPrice}`);
Запустите файл JavaScript, чтобы увидеть работу цикла for-in:
node ~/project/forInLoop.js
Пример вывода:
Итерирование по индексам массива:
Индекс: 0, Фрукт: apple
Индекс: 1, Фрукт: banana
Индекс: 2, Фрукт: cherry
Индекс: 3, Фрукт: date
Итерирование по свойствам объекта:
name: John Doe
age: 22
major: Computer Science
gpa: 3.8
Вычисление общей стоимости:
Общая стоимость: $1150
Основные моменты о циклах for-in:
- Работает как с массивами, так и с объектами
- Итерируется по индексам (для массивов) или свойствам (для объектов)
- Предоставляет простой способ доступа к элементам без использования традиционных циклов с индексами
- Будьте осторожны при использовании с массивами, так как он итерируется по всем перечисляемым свойствам
Давайте рассмотрим еще один пример, чтобы продемонстрировать его гибкость:
// Использование цикла for-in для фильтрации и преобразования данных
let grades = {
math: 85,
science: 92,
english: 78,
history: 88
};
console.log("Фильтрация оценок выше 80:");
for (let subject in grades) {
if (grades[subject] > 80) {
console.log(`${subject}: ${grades[subject]}`);
}
}
Запустите файл снова:
node ~/project/forInLoop.js
Пример вывода:
Фильтрация оценок выше 80:
math: 85
science: 92
history: 88