Метод filter
Метод filter омогућава филтрирање
елемената низе, остављајући само оне елементе
који одговарају одређеном услову.
Метод као параметар добија функцију, која
ће се извршити за сваки елемент низе.
Метод као резултат враћа нову
низу, у коју ће ући само они елементи,
за које прослеђена функција врати true.
Функцији се могу проследити три параметра. Ако ови параметри постоје (нису обавезни), тада у први аутоматски долази елемент низе, у други долази његов број у низу (индекс), а у трећи - сама низа.
Синтакса
javascriptlet нови низ = низ.filter(function(елемент, индекс, низ) {
код
return true или false
});
Пример
Хајде да филтрирамо низ, оставивши у њему само позитивне бројеве:
javascriptlet 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);
Резултат извршавања кода:
javascript[5, 1, 1, 3, 4]
Пример
Скратимо код, користећи стреличасту функцију:
javascriptlet 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);
Резултат извршавања кода:
javascript[5, 1, 1, 3, 4]
Пример
Скратимо код, користећи скраћивање логичких операција:
javascriptlet arr = [-2, 5, 1, -5, -1, 1, 3, 4, -1];
let res = arr.filter(elem => {
return elem >= 0;
});
console.log(res);
Резултат извршавања кода:
javascript[5, 1, 1, 3, 4]
Пример
Скратимо код, користећи особине стреличастих функција:
javascriptlet arr = [-2, 5, 1, -5, -1, 1, 3, 4, -1];
let res = arr.filter(elem => elem > 0);
console.log(res);
Резултат извршавања кода:
javascript[5, 1, 1, 3, 4]
Пример
По потреби у трећи параметар се може проследити сама низа:
javascriptlet res = arr.filter(function(elem, index, arr) {
овде ће бити доступна низа arr
});