Map(), reduce() y filter() son funciones de array que transforman la array de acuerdo con la función aplicada y devuelven la array actualizada. Se utilizan para escribir códigos simples, breves y limpios para modificar una array en lugar de utilizar los bucles.
- Método map(): aplica una función dada en todos los elementos de la array y devuelve la array actualizada. Es el código más simple y más corto en lugar de un bucle. El mapa es similar al siguiente código:
arr =
new
Array(1, 2, 3, 6, 5, 4);
for
(int i = 0; i < 6; i++) {
arr[i] *= 3;
}
Sintaxis:
array.map(function_to_be_applied)
array.map(function (args) { // code; })
Ejemplo:
function
triple(n){
return
n*3;
}
arr =
new
Array(1, 2, 3, 6, 5, 4);
var
new_arr = arr.map(triple)
console.log(new_arr);
Output: [ 3, 6, 9, 18, 15, 12 ]
- Método reduce(): reduce todos los elementos de la array a un solo valor aplicando repetidamente una función. Es una alternativa de usar un bucle y actualizar el resultado para cada elemento escaneado. Reduce se puede utilizar en lugar del siguiente código:
arr =
new
Array(1, 2, 3, 6, 5, 4);
result = 1
for
(int i = 0; i < 6; i++) {
result = result * arr[i];
}
Sintaxis:
array.reduce(function_to_be_applied)
array.reduce(function (args) { // code; })
Ejemplo:
function
product(a, b){
return
a * b;
}
arr =
new
Array(1, 2, 3, 6, 5, 4);
var
product_of_arr = arr.reduce(product)
console.log(product_of_arr)
Producción:
720
- Método filter(): Filtra los elementos de la array que devuelven falso para la condición aplicada y devuelve la array que contiene elementos que satisfacen la condición aplicada. Es un código más simple y más corto en lugar del siguiente código usando un bucle:
arr =
new
Array(1, 2, 3, 6, 5, 4);
new_arr = {}
for
(int i = 0; i < 6; i++) {
if
(arr[i] % 2 == 0) {
new_arr.push(arr[i]);
}
}
Sintaxis:
array.filter(function_to_be_applied)
array.filter(function (args) { // condition; })
Ejemplo:
arr =
new
Array(1, 2, 3, 6, 5, 4);
var
new_arr = arr.filter(
function
(x){
return
x % 2==0;
});
console.log(new_arr)
Producción:
[ 2, 6, 4 ]