Il metodo filter
Il metodo filter permette di filtrare
gli elementi di un array, mantenendo solo quelli
che soddisfano una determinata condizione.
Il metodo riceve come parametro una funzione, che
verrà eseguita per ogni elemento dell'array.
Il metodo restituisce come risultato un nuovo
array, che conterrà solo gli elementi
per i quali la funzione fornita restituisce true.
Alla funzione possono essere passati tre parametri. Se questi parametri sono presenti (non sono obbligatori), allora nel primo andrà automaticamente l'elemento dell'array, nel secondo andrà il suo numero nell'array (indice), e nel terzo - l'array stesso.
Sintassi
let nuovoArray = array.filter(function(elemento, indice, array) {
codice
return true o false
});
Esempio
Filtriamo l'array, mantenendo in esso solo i numeri positivi:
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);
Risultato dell'esecuzione del codice:
[5, 1, 1, 3, 4]
Esempio
Accorciamo il codice, utilizzando una funzione freccia:
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);
Risultato dell'esecuzione del codice:
[5, 1, 1, 3, 4]
Esempio
Accorciamo il codice, utilizzando l'accorciamento delle operazioni logiche:
let arr = [-2, 5, 1, -5, -1, 1, 3, 4, -1];
let res = arr.filter(elem => {
return elem >= 0;
});
console.log(res);
Risultato dell'esecuzione del codice:
[5, 1, 1, 3, 4]
Esempio
Accorciamo il codice, sfruttando le caratteristiche delle funzioni freccia:
let arr = [-2, 5, 1, -5, -1, 1, 3, 4, -1];
let res = arr.filter(elem => elem > 0);
console.log(res);
Risultato dell'esecuzione del codice:
[5, 1, 1, 3, 4]
Esempio
Se necessario, nel terzo parametro può essere passato l'array stesso:
let res = arr.filter(function(elem, index, arr) {
qui sarà accessibile l'array arr
});