All For One es-419 Explainer

Explicación de Todos para uno

Objetivo de este acertijo: Completar la función de flecha dentro del metodo .reduce() para que se pueda calcular el totalCost.

Tutorial de la solución: Cuando se ejecuta el código de inicio, el totalCost tiene un valor de undefined. Debe ser un número, la suma de todos los valores en prices. La forma en que se calcula el totalCost es: tomar el arreglo prices y .reduce() (reducirlo).

.reduce() es parecido a .map(), menos que no devuelve un arreglo de todos los resultados. Usa otro parámetro llamado “acumulador”, cuyo valor se actualiza con cada elemento. En este acertijo, actualizar el acumulador simplemente significa agregarle al elemento actual. El valor final del acumulador será el valor devuelto por la llamada .reduce().

La llamada .reduce() usa una función de devolución de llamada como un argumento. Estamos usando una función de flecha como la devolución de llamada. Debe tener 2 parámetros: una variable (el acumulador) que almacenará la suma a medida que se suma, y una variable para almacenar el elemento actual. El acumulador en nuestra función de flecha se llama sum y nuestro precio actual se almacenará en el parámetro price.

El bloque de código {} de la función de flecha debe agregar el price actual a la sum acumulada, y eso se debe devolver. Entonces, return sum + price, es el comando.

Solución del código de ejemplo:

(Pulsa a continuación para revelar)


import { hours, prices } from 'grasshopper.store';

console.log(hours);

let totalHours = hours.reduce((today, sum) => {

return today + sum;

});

console.log('Total Hours: ' + totalHours);

console.log(prices);

let totalCost = prices.reduce((price, sum) => {

return price + sum;

});

console.log('Total Cost: ' + totalCost);