Método filter
El método filter permite filtrar
elementos de un array, dejando solo los que cumplan
una condición determinada.
El método recibe como parámetro una función, que
se ejecutará para cada elemento del array.
Como resultado, el método devuelve un nuevo
array, que incluirá solo aquellos elementos
para los cuales la función pasada devuelva true.
Se pueden pasar tres parámetros a la función. Si estos parámetros están presentes (no son obligatorios), en el primero caerá automáticamente el elemento del array, en el segundo caerá su número en el array (índice), y en el tercero - el propio array.
Sintaxis
javascriptlet nuevo array = array.filter(function(elemento, indice, array) {
código
return true o false
});
Ejemplo
Filtremos un array, dejando en él solo números positivos:
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);
Resultado de la ejecución del código:
javascript[5, 1, 1, 3, 4]
Ejemplo
Acortemos el código, utilizando funciones flecha:
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);
Resultado de la ejecución del código:
javascript[5, 1, 1, 3, 4]
Ejemplo
Acortemos el código, utilizando acortamiento de operaciones lógicas:
javascriptlet arr = [-2, 5, 1, -5, -1, 1, 3, 4, -1];
let res = arr.filter(elem => {
return elem >= 0;
});
console.log(res);
Resultado de la ejecución del código:
javascript[5, 1, 1, 3, 4]
Ejemplo
Acortemos el código, utilizando características de las funciones flecha:
javascriptlet arr = [-2, 5, 1, -5, -1, 1, 3, 4, -1];
let res = arr.filter(elem => elem > 0);
console.log(res);
Resultado de la ejecución del código:
javascript[5, 1, 1, 3, 4]
Ejemplo
Si es necesario, en el tercer parámetro se puede pasar el propio array:
javascriptlet res = arr.filter(function(elem, index, arr) {
// aquí estará disponible el array arr
});