Metoden filter
Metoden filter lar deg filtrere
elementer i en array, og beholde kun de elementene
som oppfyller en bestemt betingelse.
Metoden tar imot en funksjon som parameter, som
vil kjøres for hvert element i arrayen.
Metoden returnerer en ny
array, som kun vil inneholde de elementene
som den overførte funksjonen returnerer true for.
Du kan sende tre parametere til funksjonen. Hvis disse parameterne er tilstede (de er ikke obligatoriske), vil den første automatisk motta elementet i arrayen, den andre vil motta dets nummer i arrayen (indeksen), og den tredje - selve arrayen.
Syntaks
javascriptlet nyArray = array.filter(function(element, indeks, array) {
kode
return true eller false
});
Eksempel
La oss filtrere en array, og bare beholde positive tall:
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);
Resultatet av kjøring av koden:
javascript[5, 1, 1, 3, 4]
Eksempel
La oss forkorte koden ved å bruke pilfunksjoner:
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);
Resultatet av kjøring av koden:
javascript[5, 1, 1, 3, 4]
Eksempel
La oss forkorte koden ved å bruke forkortelse av logiske operatorer:
javascriptlet arr = [-2, 5, 1, -5, -1, 1, 3, 4, -1];
let res = arr.filter(elem => {
return elem >= 0;
});
console.log(res);
Resultatet av kjøring av koden:
javascript[5, 1, 1, 3, 4]
Eksempel
La oss forkorte koden ved å bruke egenskapene til pilfunksjoner:
javascriptlet arr = [-2, 5, 1, -5, -1, 1, 3, 4, -1];
let res = arr.filter(elem => elem > 0);
console.log(res);
Resultatet av kjøring av koden:
javascript[5, 1, 1, 3, 4]
Eksempel
Ved behov kan du i den tredje parameteren sende selve arrayen:
javascriptlet res = arr.filter(function(elem, index, arr) {
her vil arrayen arr være tilgjengelig
});