JavaScript Valores de filtrado


Ejemplo

El método filter() crea una matriz rellena con todos los elementos de la matriz que pasan una prueba proporcionada como una función.

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);

Resultados en una nueva matriz:

[3, 4, 5]

Filtrar valores falsos.

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

Dado que Boolean es una función / constructor de javascript nativo que toma [un parámetro opcional] y el método de filtro también toma una función y le pasa el elemento de la matriz actual como parámetro, puede leerlo de la siguiente manera:

  1. Boolean(0) devuelve falso
  2. Boolean(undefined) devuelve falso
  3. Boolean({}) devuelve true, lo que significa empujarlo a la matriz devuelta
  4. Boolean(null) devuelve falso
  5. Boolean('') devuelve false
  6. Boolean(true) devuelve true, lo que significa que se envía a la matriz devuelta
  7. Boolean(5) devuelve true, lo que significa que lo empuja a la matriz devuelta

así resultará el proceso global

[ {}, true, 5 ]

Otro ejemplo simple

Este ejemplo utiliza el mismo concepto de pasar una función que toma un argumento

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"]