Метод filter() в js
- Подробности
- Категория: Javascript
- Просмотров: 82
Метод 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 благодаря своей универсальности и простоте использования.