Методы перебора массивов

Три метода, лежащие в основе функционального программирования в JavaScript.

map() — преобразование каждого элемента

«Создаёт новый массив с результатом вызова указанной функции для каждого элемента массива.»

const nums = [1, 2, 3, 4, 5]
const doubled = nums.map(n => n * 2)
// [2, 4, 6, 8, 10]

// Перевод Цельсий → Фаренгейт
const celsius = [0, 20, 37, 100]
const fahrenheit = celsius.map(c => c * 9/5 + 32)
// [32, 68, 98.6, 212]

filter() — фильтрация элементов

«Создаёт новый массив со всеми элементами, прошедшими проверку.»

const nums = [1, 2, 3, 4, 5, 6]
const evens = nums.filter(n => n % 2 === 0)
// [2, 4, 6]

reduce() — накопление значения

Накапливает элементы массива в одно значение.

const nums = [1, 2, 3, 4, 5]
const sum = nums.reduce((acc, n) => acc + n, 0)
// 15

Цепочка методов

// Найти сумму возрастов взрослых друзей:
const totalAge = friends
  .filter(f => f.age >= 18)
  .map(f => f.age)
  .reduce((sum, age) => sum + age, 0)