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