Как работат метод массива filter в js?
Метод массивов filter() создаёт новый массив со всеми элементами,
прошедшими проверку, задаваемую в передаваемой функции. Т.е. буквально: применяя метод filter()
к нашему массиву, и задав
параметры фильтрации - мы получаем новый массив с элементами внутри по заданным критериям. В качестве фильтрации мы должны описать функцию которая будет поочередно применяться
к каждому элементу исходного массива.
Исходный массив:
const names = ['Ivan', 'Maria', 'Anton', 'Anna'];
Допустим стоит задача получить все имена длиннее 4ех символов.
Сначала можно определить, для себя, как бы выглядела функция которая проверяла длину строки.
Такая функция, по идее, должна вернуть true
если проверка прошла, либо false
если нет.
const isNameLenghtMoreFour = (name) => {
if (name.length > 4) {
return true;
}
return false;
}
Теперь нам надо с помощью метода filter()
применить эту логику к каждому элементу.
const longNames = names.filter((name) => name.length > 4);
Т.е. при выполнении метода filter()
идет перебор всех элементов массива names, и каждый подставляется в функцию-фильтр которую мы передали и выполняется проверка. Если проверка успешна - элемент оставляется, иначе - выбрасывается. Результат попадает в longNames
. Если вывести longNames
, там ожидаемо будет:
-> ['Maria','Anton']