Вопрос проверяет понимание работы с массивами, колбэками и принципа неизменяемости данных.
Array.prototype.filter создаёт новый массив, включающий только те элементы, для которых callback-функция вернула true. Исходный массив при этом не изменяется. Callback вызывается для каждого элемента массива по порядку. Метод часто используется для отбора данных по условию.
Array.prototype.filter — это метод массива, который отбирает элементы по условию и возвращает новый массив.
Сначала опишем общую идею: filter проходит по массиву и проверяет каждый элемент.
Метод принимает callback-функцию
Callback вызывается для каждого элемента
Если callback возвращает true:
элемент попадает в новый массив
Если false:
элемент пропускается
const numbers = [1, 2, 3, 4, 5];
const even = numbers.filter(n => n % 2 === 0);
console.log(even); // [2, 4]
Callback получает:
Текущий элемент
Индекс элемента
Исходный массив
numbers.filter((value, index, array) => {
return value > 2;
});
Исходный массив не меняется
filter всегда возвращает новый массив
Это особенно важно при работе с состоянием в React
filter — основной инструмент для работы со списками данных, когда нужно отобрать элементы без изменения исходного массива.
Array.prototype.filter последовательно проверяет элементы массива и формирует новый массив на основе логического условия.