El método filter() básicamente genera todos los elementos del objeto que pasan una prueba específica o satisfacen una función específica. El tipo de retorno del método filter() es una array que consta de todos los elementos/objetos que cumplen la función especificada.
Sintaxis:
var newArray = arr.filter(callback(object[, ind[, array]])[, Arg])
Parámetros:
- La devolución de llamada es un predicado, para probar cada objeto de la array. Devuelve True para mantener el objeto, False en caso contrario. Toma en tres argumentos:
- Objeto: el objeto actual que se procesa en la array.
- ind (Opcional): índice del objeto actual que se procesa en la array.
- array (opcional): array en la que se invocó el filtro.
- Arg (opcional): valor a usar (.this) al ejecutar la devolución de llamada.
Ejemplo 1:
<script> var array = [-1, -4, 5, 6, 8, 9, -12, -5, 4, -1]; var new_array = array.filter(element => element >= 0); document.write( "<h2>Output\n</h2>", "<h3>", new_array, "</h3>"); </script>
Salida:
El ejemplo anterior devuelve todos los elementos positivos en una array dada.
Ejemplo 2:
<script> var employees = [ {name: "Tony Stark", department: "IT"}, {name: "Peter Parker", department: "Pizza Delivery"}, {name: "Bruce Wayne", department: "IT"}, {name: "Clark Kent", department: "Editing"} ]; var output = employees.filter(employee => employee.department == "IT"); for(var i=0;i<output.length;i++){ document.write("<h2>", output[i].name, "</h2>", "<br/>") }; </script>
Producción: