JavaScriptУрок 10 из 16
Методы массивов: map, filter, reduce
Вместо ручных циклов у массивов есть методы, которые принимают функцию и делают всю работу. Код становится короче и читается как фраза: «отбери то, что в наличии, и возьми названия».
Главное
- map(fn) — новый массив, где каждый элемент преобразован функцией
- filter(fn) — новый массив только из элементов, для которых fn вернула true
- reduce((acc, x) => acc + x, 0) сворачивает массив в одно значение, 0 — стартовое
- find(fn) — первый подходящий элемент, some(fn) — есть ли хоть один
- Методы соединяют цепочкой: list.filter(…).map(…)
Пример
const numbers = [1, 2, 3, 4, 5]; const doubled = numbers.map((n) => n * 2);const even = numbers.filter((n) => n % 2 === 0);const sum = numbers.reduce((acc, n) => acc + n, 0); console.log(doubled, even, sum);console.log(numbers.find((n) => n > 3), numbers.some((n) => n > 4));console.log(numbers.filter((n) => n > 2).map((n) => n * 10));Сам numbers не изменился: map и filter возвращают новые массивы. В последней строке сначала отобрали числа больше 2, а потом умножили каждое на 10.
Задание
Как пользоваться редактором⌘ Enter или Ctrl Enter — запустить код, ⇧ ⌘ Enter — проверить задание.Tab и Shift Tab сдвигают строку или выделение; Esc, затем Tab — выйти из редактора.Проверка сравнивает то, что напечатала программа, с заданием; пробелы в конце строк не важны.После двух неудачных проверок можно открыть решение. Ваш код сохраняется в этом браузере.В интернет-магазине четыре товара. Отберите те, что в наличии (filter), возьмите их названия (map), сложите цены (reduce) и найдите первый товар в наличии дороже 20 (find). Вывод: Mug, Notebook, Hoodie, затем Total: 65 и First over 20: Hoodie.
Вывод
Здесь появится то, что напечатает программа.