Методот filter
Методот filter овозможува филтрирање
на елементи од низа, оставајќи ги само оние
кои одговараат на одреден услов.
Методот како параметар добива функција, која
ќе се изврши за секој елемент од низата.
Како резултат методот враќа нова
низа, во која ќе влезат само оние елементи,
за кои дадената функција ќе врати true.
Во функцијата може да се пренесат три параметри. Ако овие параметри постојат (тие не се задолжителни), тогаш во првиот автоматски ќе се најде елементот од низата, во вториот ќе се најде неговиот број во низата (индекс), а во третиот - самата низа.
Синтакса
let nova niza = niza.filter(function(element, indeks, niza) {
kod
return true ili 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]
Пример
Да го скратиме кодот, користејќи arrow функција:
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]
Пример
Да го скратиме кодот, користејќи карактеристики на arrow функциите:
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
});