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
let 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:
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);
Resultado de la ejecución del código:
[5, 1, 1, 3, 4]
Ejemplo
Acortemos el código, utilizando funciones flecha:
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);
Resultado de la ejecución del código:
[5, 1, 1, 3, 4]
Ejemplo
Acortemos el código, utilizando acortamiento de operaciones lógicas:
let 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:
[5, 1, 1, 3, 4]
Ejemplo
Acortemos el código, utilizando características de las funciones flecha:
let 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:
[5, 1, 1, 3, 4]
Ejemplo
Si es necesario, en el tercer parámetro se puede pasar el propio array:
let res = arr.filter(function(elem, index, arr) {
// aquí estará disponible el array arr
});