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
javascriptlet nuovoArray = array.filter(function(elemento, indice, array) {
codice
return true o false
});
Esempio
Filtriamo l'array, mantenendo in esso solo i numeri positivi:
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);
Risultato dell'esecuzione del codice:
javascript[5, 1, 1, 3, 4]
Esempio
Accorciamo il codice, utilizzando una funzione freccia:
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);
Risultato dell'esecuzione del codice:
javascript[5, 1, 1, 3, 4]
Esempio
Accorciamo il codice, utilizzando l'accorciamento delle operazioni logiche:
javascriptlet 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:
javascript[5, 1, 1, 3, 4]
Esempio
Accorciamo il codice, sfruttando le caratteristiche delle funzioni freccia:
javascriptlet 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:
javascript[5, 1, 1, 3, 4]
Esempio
Se necessario, nel terzo parametro può essere passato l'array stesso:
javascriptlet res = arr.filter(function(elem, index, arr) {
qui sarà accessibile l'array arr
});