Методы перебора массивов: forEach, keys, values, entries

🔍 Знакомство с методами перебора массивов

Массивы — это фундамент JavaScript, а их перебор — ежедневная задача каждого разработчика. Сегодня мы разберём мощные методы: forEach, keys, values и entries. Они помогут вам работать с массивами элегантно и эффективно!


🛠️ Метод forEach: перебор элементов

forEach — базовый метод для итерации по массиву. Он выполняет функцию для каждого элемента, не создавая новый массив (в отличие от map).

const fruits = ['apple', 'banana', 'cherry'];

fruits.forEach((fruit, index) => {
  console.log(`${index + 1}. ${fruit}`);
});
// Вывод:
// 1. apple
// 2. banana
// 3. cherry

🔹 Особенности:

  • Не возвращает значение (вернёт undefined).
  • Не изменяет исходный массив (если только вы сами не сделаете это внутри функции).
  • Нельзя остановить (в отличие от for...of с break).

💡 Совет: Используйте forEach для простых операций (логирование, модификация элементов), когда не нужен новый массив.


🗝️ Метод keys: итерация по индексам

Метод keys() возвращает итератор с индексами массива. Это полезно, если вам нужны только позиции элементов.

const colors = ['red', 'green', 'blue'];
const iterator = colors.keys();

for (const key of iterator) {
  console.log(key); // 0, 1, 2
}

🔹 Где это пригодится?

  • Когда нужно работать только с индексами (например, для сопоставления с другим массивом).
  • В комбинации с другими методами, например entries().

💎 Метод values: итерация по значениям

values() возвращает итератор с значениями массива. Похож на for...of, но в виде отдельного метода.

const pets = ['cat', 'dog', 'parrot'];
const petIterator = pets.values();

for (const pet of petIterator) {
  console.log(pet); // 'cat', 'dog', 'parrot'
}

🔹 Зачем использовать values()?

  • Когда нужен именно итератор (например, для передачи в генераторы или другие функции).
  • Для единообразия кода, если уже используете keys() или entries().

🔗 Метод entries: пары «ключ-значение»

entries() — один из самых мощных методов! Он возвращает итератор с парами [индекс, элемент]. Идеально подходит, когда нужны и индекс, и значение.

const languages = ['JavaScript', 'Python', 'Rust'];
const entries = languages.entries();

for (const [index, language] of entries) {
  console.log(`${index}: ${language}`);
}
// Вывод:
// 0: JavaScript
// 1: Python
// 2: Rust

🔹 Пример использования:

Преобразование массива в объект с сохранением индексов:

const arr = ['zero', 'one', 'two'];
const obj = Object.fromEntries(arr.entries());
console.log(obj); // { 0: 'zero', 1: 'one', 2: 'two' }

📊 Сравнение методов

Метод Возвращает Изменяет массив? Использование
forEach undefined ❌ Нет Просто перебрать элементы.
keys Итератор индексов ❌ Нет Получить индексы массива.
values Итератор значений ❌ Нет Получить значения массива.
entries Итератор пар ❌ Нет Получить и индекс, и значение.

🔥 Практика: комбинируем методы

Давайте используем entries() для логирования элементов с чётными индексами:

const numbers = [10, 20, 30, 40, 50];

for (const [index, value] of numbers.entries()) {
  if (index % 2 === 0) {
    console.log(`Чётный индекс ${index}: ${value}`);
  }
}
// Вывод:
// Чётный индекс 0: 10
// Чётный индекс 2: 30
// Чётный индекс 4: 50

🎯 Итоги

  • forEach — простой перебор без создания нового массива.
  • keys — получаем индексы.
  • values — получаем значения.
  • entries — мощный инструмент для работы с парами «индекс-значение».

Теперь вы готовы перебирать массивы как профессионал! 🚀 Пишите чистый код и используйте подходящий метод для каждой задачи.

Скрыть рекламу навсегда

🌱 Индвидидулаьные занятия

Индивидуальные онлайн-занятия по программированию для детей и подростков

Личный подход, без воды, с фокусом на понимание и реальные проекты.

🚀 Записаться на занятие