/
Вопросы и ответы
/
JavaScript
/

Как работат метод массива filter в js?

Как работат метод массива filter в js?

3 года назад

Andrey Moshkov

Ответы

0

Метод массивов 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']

3 года назад

Вячеслав Межуревский

+7 800 100 22 47

бесплатно по РФ

+7 495 085 21 62

бесплатно по Москве

108813 г. Москва, вн.тер.г. поселение Московский,
г. Московский, ул. Солнечная, д. 3А, стр. 1, помещ. 20Б/3
ОГРН 1217300010476
ИНН 7325174845