Метод 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
});