JavaScript Valori di filtraggio

Esempio

Il metodo filter() crea una matrice riempita con tutti gli elementi dell'array che superano un test fornito come funzione.

5.1
[1, 2, 3, 4, 5].filter(function(value, index, arr) {
  return value > 2;
});
6
[1, 2, 3, 4, 5].filter(value => value > 2);

Risultati in un nuovo array:

[3, 4, 5]

Filtrare valori falsi

5.1
var filtered = [ 0, undefined, {}, null, '', true, 5].filter(Boolean);

Poiché Boolean è una funzione / costruttore javascript nativo che accetta [un parametro opzionale] e il metodo di filtro accetta anche una funzione e la passa come parametro all'elemento della matrice corrente, è possibile leggerla come segue:

  1. Boolean(0) restituisce false
  2. Boolean(undefined) restituisce falso
  3. Boolean({}) restituisce true che significa spingerlo all'array restituito
  4. Boolean(null) restituisce false
  5. Boolean('') restituisce false
  6. Boolean(true) restituisce true che significa spingerlo all'array restituito
  7. Boolean(5) restituisce true che significa spingerlo all'array restituito

quindi il processo complessivo risulterà

[ {}, true, 5 ]

Un altro semplice esempio

Questo esempio utilizza lo stesso concetto di passare una funzione che accetta un argomento

5.1
function startsWithLetterA(str) {
    if(str && str[0].toLowerCase() == 'a') {
        return true
    }
    return false;
}

var str              = 'Since Boolean is a native javascript function/constructor that takes [one optional paramater] and the filter method also takes a function and passes it the current array item as a parameter, you could read it like the following';
var strArray         = str.split(" ");
var wordsStartsWithA = strArray.filter(startsWithLetterA);
//["a", "and", "also", "a", "and", "array", "as"]