Метод filter
позволяется отфильтровать
элементы массива, оставив только подходящие
под определенное условие элементы.
Метод в параметре получает функцию, которая выполнится для каждого элемента массива.
Своим результатом метод возвращает новый
массив, в который войдут только те элементы,
для которых переданная функции вернет true
.
В функцию можно передавать 3
параметра.
Если эти параметры есть (они не обязательны), то в первый автоматически попадет элемент массива, во второй попадет его номер в массиве (индекс), а в третий - сам массив.
Синтаксис
let новый массив = массив.filter(function(элемент, индекс, массив) {
код
return true или false
})
Пример
Отфильтруем массив, оставив в нем только положительные числа:
let numbers = [-2, 5, 1, -5, -1, 1, 3, 4, -1];
let result = numbers.filter(function(elem) {
if (elem >= 0) {
return true;
} else {
return false;
}
});
console.log(result);
Результат выполнения кода:
[5, 1, 1, 3, 4]
Пример
При необходимости в третий параметр можно передать сам массив:
let result = arr.filter(function(elem, index, arr) {
тут будет доступен массив arr
})