Метод JavaScript Array filter () возвращает новый массив со всеми элементами, которые проходят проверку, определенную данной функцией.
Синтаксис filter()
метода:
arr.filter(callback(element), thisArg)
Здесь arr - это массив.
filter () Параметры
filter()
Метод принимает в:
- callback - функция тестирования, выполняемая для каждого элемента массива; возвращает,
true
если элемент проходит проверку, иначеfalse
. Принимает:- element - текущий элемент, передаваемый из массива.
- thisArg (необязательно) - значение, которое будет использоваться
this
при выполнении обратного вызова. По умолчанию это такundefined
.
Возвращаемое значение из filter ()
- Возвращает новый массив, содержащий только элементы, прошедшие проверку.
Примечания :
filter()
не меняет исходный массив.filter()
не выполняетсяcallback
для элементов массива без значений.
Пример 1: фильтрация значений из массива
const prices = (1800, 2000, null, 3000, 5000, "Thousand", 500, 8000) function checkPrice(element) ( return element> 2000 && !Number.isNaN(element); ) let filteredPrices = prices.filter(checkPrice); console.log(filteredPrices); // ( 3000, 5000, 8000 ) // using arrow function let newPrices = prices.filter((price) => (price> 2000 && !Number.isNaN(price))); console.log(newPrices); // ( 3000, 5000, 8000 )
Вывод
(3000, 5000, 8000) (3000, 5000, 8000)
Здесь все числа, меньшие или равные 2000 , и все нечисловые значения отфильтровываются.
Пример 2: поиск в массиве
const languages = ("JavaScript", "Python", "Ruby", "C", "C++", "Swift", "PHP", "Java"); function searchFor(arr, query) ( function condition(element) ( return element.toLowerCase().indexOf(query.toLowerCase()) !== -1; ) return arr.filter(condition); ) let newArr = searchFor(languages, "ja"); console.log(newArr); // ( 'JavaScript', 'Java' ) // using arrow function const searchArr = (arr, query) => arr.filter(element => element.toLowerCase().indexOf(query.toLowerCase()) !== -1); let newLanguages = searchArr(languages, "p"); console.log(newLanguages); // ( 'JavaScript', 'Python', 'PHP' )
Вывод
('JavaScript', 'Java') ('JavaScript', 'Python', 'PHP')
Здесь и элемент, и запрос преобразуются в нижний регистр, а метод indexOf () используется для проверки наличия запроса внутри элемента. Те элементы, которые не прошли этот тест, отфильтровываются.
Рекомендуемая литература: JavaScript Array map ()