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