Методы массивов (forEach, map, filter, find)
Урок: Методы массивов (forEach, map, filter, find)
Введение
Когда мы работаем с массивами, почти всегда нужно что-то сделать с их элементами: вывести их, изменить, отобрать нужные или найти конкретный.
Представь список товаров. Иногда нужно просто показать их все. Иногда — применить скидку ко всем ценам. Иногда — оставить только те, которые дешевле определённой суммы. А иногда — найти один конкретный товар.
Раньше для этого использовали циклы for, но со временем в JavaScript появились более удобные и выразительные способы — методы массивов.
Они позволяют описывать действия над массивом более понятным языком: «пройди по каждому», «создай новый массив», «отфильтруй», «найди».
В этом уроке мы разберём четыре ключевых метода: forEach, map, filter и find.
Как работают методы массивов
Методы массивов — это функции, которые вызываются у массива и принимают другую функцию внутри себя.
Звучит сложнее, чем есть на самом деле. Посмотрим пример:
let numbers = [1, 2, 3];
numbers.forEach(function (num) {
console.log(num);
});
Здесь:
forEach— это метод массива;- внутрь передаётся функция;
- эта функция вызывается для каждого элемента массива.
Такая функция называется callback (функция-обработчик).
Важно понять: методы массивов сами перебирают элементы, нам не нужно писать цикл вручную.
Метод forEach — перебор без возврата результата
Метод forEach используется, когда нужно просто пройтись по массиву и что-то сделать с каждым элементом.
let numbers = [1, 2, 3];
numbers.forEach(function (num) {
console.log(num);
});
Результат:
1
2
3
Что происходит:
forEachберёт каждый элемент массива;- передаёт его в функцию как
num; - выполняет код внутри функции.
Важно: forEach ничего не возвращает. Он просто выполняет действие.
Он подходит, когда нужно:
- вывести данные;
- выполнить побочный эффект;
- что-то изменить вне массива.
Метод map — создание нового массива
Метод map используется, когда нужно преобразовать каждый элемент и получить новый массив.
let numbers = [1, 2, 3];
let doubled = numbers.map(function (num) {
return num * 2;
});
console.log(doubled);
Результат:
[2, 4, 6]
Разберём:
mapпроходит по каждому элементу;- для каждого элемента выполняется функция;
- результат функции возвращается;
- из этих результатов собирается новый массив.
Важно:
- исходный массив не изменяется;
- создаётся новый.
Это один из самых часто используемых методов.
Метод filter — отбор элементов
Метод filter используется, когда нужно оставить только те элементы, которые соответствуют условию.
let numbers = [10, 20, 30, 40];
let result = numbers.filter(function (num) {
return num > 20;
});
console.log(result);
Результат:
[30, 40]
Что происходит:
filterпроверяет каждый элемент;- если функция возвращает
true, элемент остаётся; - если
false— исключается.
Таким образом создаётся новый массив только с подходящими значениями.
Метод find — поиск одного элемента
Метод find используется, когда нужно найти первый элемент, который подходит под условие.
let numbers = [10, 20, 30, 40];
let result = numbers.find(function (num) {
return num > 20;
});
console.log(result);
Результат:
30
Здесь:
findпроходит по массиву;- как только находит подходящий элемент — возвращает его;
- дальше поиск прекращается.
Если ничего не найдено, возвращается undefined.
Как выглядят методы в более современном виде
Часто вместо обычной функции используют стрелочные функции:
let numbers = [1, 2, 3];
let result = numbers.map((num) => num * 2);
console.log(result);
Это более короткая запись той же логики.
Здесь:
num => num * 2— это функция;- она возвращает результат автоматически.
Сравнение методов
Важно понимать разницу между методами.
forEach — просто перебирает, ничего не возвращает.
map — создаёт новый массив с преобразованными значениями.
filter — создаёт новый массив с отобранными элементами.
find — возвращает один первый найденный элемент.
Каждый из них решает свою задачу, и важно выбирать подходящий.
Где это используется на практике
Эти методы используются постоянно.
Например:
forEach— для вывода списка на страницу;map— для преобразования данных с сервера;filter— для поиска товаров по условиям;find— для поиска конкретного пользователя.
В реальных приложениях массивы почти всегда обрабатываются именно через эти методы, а не через классические циклы.
Они делают код более читаемым и ближе к тому, как мы формулируем задачу на человеческом языке.
Итоговое понимание
Методы массивов — это более высокий уровень работы с данными.
Вместо того чтобы вручную писать циклы, мы описываем, что именно хотим сделать: пройтись, преобразовать, отфильтровать или найти.
Ключевая идея — не просто перебрать массив, а выразить намерение.
map говорит: «создай новый массив»,
filter — «оставь только нужное»,
find — «найди первый подходящий».
Это делает код более понятным, компактным и удобным для поддержки.