Метод filter() в js

Метод filter() в js - грубо говоря, используется для фильтрации...

Как читается - таков примерно и смысл. Допустим у нас есть массив из чисел и мы хотим отобрать только те, которые удовлетворяют определенному условию - эти условия описываются уже внутри этой функции - вот и все!

Метод filter() в JavaScript используется для создания нового массива, содержащего только те элементы исходного массива, которые удовлетворяют заданному условию. Он не изменяет исходный массив, а возвращает новый массив с отфильтрованными элементами.

Синтаксис метода filter():

array.filter(function(currentValue, index, arr), thisValue)


- currentValue - текущий обрабатываемый элемент массива;
- index - индекс текущего обрабатываемого элемента массива;
- arr - ссылка на обрабатываемый массив;
- thisValue (необязательный) - объект, который будет использоваться в качестве значения this при вызове функции.

Примеры использования метода filter():

1. Фильтрация массива чисел, оставляющих только четные числа:

const numbers = [1, 2, 3, 4, 5];
const evens = numbers.filter(function(num) {
    return num % 2 === 0;
});
console.log(evens); // [2, 4]


2. Фильтрация массива строк, оставляющих только строки длиной больше 3 символов:

const names = ['Alice', 'Bob', 'Charlie', 'David'];
const longNames = names.filter(function(name) {
    return name.length > 3;
});
console.log(longNames); // ['Alice', 'Charlie', 'David']


3. Фильтрация массива объектов, оставляющих только объекты с определенным свойством:

const users = [
    { id: 1, name: 'Alice' },
    { id: 2, name: 'Bob' },
    { id: 3, lastName: 'Smith' },
    { id: 4, name: 'David', lastName: 'Johnson' }
];
const namedUsers = users.filter(function(user) {
return user.name !== undefined;
});
console.log(namedUsers);
// [
// { id: 1, name: 'Alice' },
// { id: 2, name: 'Bob' },
// { id: 4, name: 'David', lastName: 'Johnson' }
// ]


4. Фильтрация массива объектов, оставляющих только объекты, удовлетворяющие заданному условию:

const users = [
    { id: 1, name: 'Alice', age: 25 },
    { id: 2, name: 'Bob', age: 30 },
    { id: 3, name: 'Charlie', age: 20 },
    { id: 4, name: 'David', age: 35 }
];
const adults = users.filter(function(user) {
return user.age >= 30;
});
console.log(adults);
// [
// { id: 2, name: 'Bob', age: 30 },
// { id: 4, name: 'David', age: 35 }
// ]


5. Фильтрация массива чисел, оставляющих только числа, которые больше среднего значения:

const numbers = [1, 2, 3, 4, 5];
const average = numbers.reduce(function(sum, num) {
    return sum + num;
}, 0) / numbers.length;
const aboveAverage = numbers.filter(function(num) {
    return num > average;
});
console.log(aboveAverage); // [4, 5]


Метод filter() можно использовать вместе с другими методами массивов, например, map(), reduce(), sort() и т.д., для более сложных преобразований и фильтраций данных.

const users = [
    { id: 1, name: 'Alice', age: 25 },
    { id: 2, name: 'Bob', age: 30 },
    { id: 3, name: 'Charlie', age: 20 },
    { id: 4, name: 'David', age: 35 }
];
const adultNames = users
.filter(function(user) {
return user.age >= 30;
})
.map(function(user) {
return user.name;
});
console.log(adultNames); // ['Bob', 'David']


Метод filter() является одним из наиболее часто используемых методов массивов в JavaScript благодаря своей универсальности и простоте использования.

 

Добавить комментарий


Защитный код
Обновить