Фильтр Он делает именно то, на что похож. Он принимает массив и отфильтровывает нежелательные элементы.
Метод filter()
возвращает новый массив со всеми элементами, прошедшими проверку, определенную данной функцией.
фильтр() Синтаксис
let newArray = arr.filter(callback(currentValue , index , [array]) { // return element for newArray, if true });
Точно так же, как map
, filter
передает вашему обратному вызову три аргумента:
- Текущий элемент
- Текущий индекс
- Необязательный массив
Выполнение
Рассмотрим следующий пример, в котором отфильтровывается любая строка длиной менее 8 символов.
const words = ['Python', 'Javascript', 'Go', 'Java', 'PHP', 'Ruby']; const result = words.filter(word => word.length < 8); console.log(result);
Ожидаемый результат будет следующим: [ ‘Python’, ‘Go’, ‘Java’, ‘PHP’, ‘Ruby’]
const tasks = [ { 'name' : 'Write for Envato Tuts+', 'duration' : 120 }, { 'name' : 'Work out', 'duration' : 60 }, { 'name' : 'Procrastinate on Duolingo', 'duration' : 240 } ];
скажем, я хочу получить список только задач, на выполнение которых у меня ушло два часа или больше.
С filter
мы можем просто написать:
const difficultTask = tasks.filter((task) => task.duration >= 120 ); console.log(difficult_tasks) // Result [ { name: 'Write for Envato Tuts+', duration: 120 }, { name: 'Procrastinate on Duolingo', duration: 240} ]
Найти четное число из массива с помощью arr.filter()
let numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; // function to check even numbers function checkEven(number) { if (number % 2 == 0) return true; else return false; } // create a new array by filter even numbers from the numbers array let evenNumbers = numbers.filter(checkEven); console.log(evenNumbers); // Output: [ 2, 4, 6, 8, 10 ]
фильтр() Возвращаемое значение
- Возвращает новый массив только с элементами, прошедшими проверку.
filter()
не изменяет исходный массив.
Спасибо !!!
Предложения всегда приветствуются!
Не стесняйтесь комментировать любые предложения/исправления или пишите мне на [email protected]