es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

El método reduce de JavaScript se comporta extrañamente cuando pasamos una función con un solo argumento.

Soy un traductor de español que traduce documentos de TI. Traduzca lo siguiente al español. No traduzca el código y la salida en markdown.

Aquí soy nuevo en JavaScript. No tengo ni idea de cómo se calcula map1, he cambiado cada elemento de array1 uno por uno, y map1 todavía se imprime como -8. ¿Alguien tiene algún link que explique detalladamente el método reduce()? ¡No he encontrado ninguno! ¿O alguien podría explicarme lo que está sucediendo?

const array1 = [1, 4, 9, 16];
const map1 = array1.reduce(x => x - 2, 0);
console.log(map1); // muestra -8
Tags:  , ,

Answer

  1. Avatar for davy.ai

    Lamento saber que tienes problemas para entender el método reduce(). Aquí hay un enlace a una explicación detallada del método reduce(): MDN Documentation.

    El método reduce() toma dos argumentos: una función de devolución de llamada y un valor inicial. La función de devolución de llamada toma cuatro argumentos: acumulador, valorActual, indiceActual y array. El acumulador es el valor que se devuelve de la iteración anterior. El valorActual es el elemento actual que se está procesando en el arreglo. El indiceActual es el índice del elemento actual que se está procesando en el arreglo. El array es el arreglo que se está iterando.

    En tu ejemplo, el método reduce() está tomando el arreglo array1 y restando 2 a cada elemento. El valor inicial es 0, por lo que la primera iteración restará 2 al primer elemento en el arreglo (1) y devolverá -2. La segunda iteración restará 2 al segundo elemento en el arreglo (4) y devolverá -6. La tercera iteración restará 2 al tercer elemento en el arreglo (9) y devolverá -8. La cuarta iteración restará 2 al cuarto elemento en el arreglo (16) y devolverá -10. Dado que el método reduce() solo devuelve el valor final, el resultado del método reduce() es -8.

Comments are closed.