
Всем привет. В этой небольшой статье мы рассмотрим возможности метода filter(). Данный метод предназначен для работы с массивами. Итак, поехали!
Допустим у нас есть небольшой массив.
var array = [1, -1, 2, -2, 3,43,54,12,4,'map'];
И мы хотим получить все числовые элементы массива со значениями от одного до десяти. Для этого нам достаточно воспользоваться методом filter().
var result = array.filter(function(n){
return n >= 0 && n <= 10;
});
console.log(result);
В результате нам из массива array вернется список с элементами, значения которых варьируются от нуля до десяти. В качестве аргумента метод filter() принимает функцию в которой поочередно перебираются и проверяются по условию все элементы. Если значение элемента удовлетворяется условию он помещается в список который будет возвращен в конце перебора массива.
Можно привести еще примеры:
var result = array.filter(function(n){
return n >0;
});
Здесь нам возвращается массив только с положительными числами.
var result = array.filter(function(n){
return n < 0;
});
А здесь только с отрицательными.
var result = array.filter(function(n){
return n == 'map';
});
Тут мы проверяем существует ли элемент со значением 'map'. Кстати, очень удобная вещь. Можно написать аналог функции in_array() из php.
Пример:
var array = [1, -1, 2, -2, 3,43,54,12,4,'map'];
function in_array(value, array) {
var result = array.filter(function (n) {
return n == value;
});
if(result.length > 0) return true;
return false;
}
console.log(in_array(13, array));//false
console.log(in_array(-2, array));//true
С помощью функции in_array() мы можем проверять существует ли элемент с определенным значением в массиве. В качестве аргументов функция принимает значение которое мы хотим проверить на существование и массив элементы которого мы проверяем.
Вот такой простой и полезный вы можете использовать для фильтрации значений в массиве.
На этом у меня все. Желаю вам успехов и удачи! Пока!