Explicación de Procede con la compra
Objetivo de este acertijo: Completar las funciones de flecha para obtener el arreglo prices
y el valor total
.
Tutorial de la solución: Cuando ejecutas el código de inicio, están sucediendo algunas cosas extrañas; se está generando undefined
y NaN
. Podemos ver que las funciones de flecha en .map()
y .reduce()
están vacías, por lo que sabemos que no devuelven nada, que es problemático.
La variable prices
debe ser un arreglo de sólo el valor .price
de cada elemento en cart
. La función de flecha debe tener un parámetro de entrada llamado item
y debe return
(devolver) item.price
. Entre las llaves {}
de la función de flecha, agrega return item.price
. Ahora, el arreglo prices
se puede crear correctamente.
A continuación, se puede calcular el total
usando .reduce()
. El método .reduce()
también usa una función de devolución de llamada. La función debe tomar 2 argumentos: un acumulador y el elemento actual. En este acertijo, se llaman sum
y price
, ya que pasa por cada elemento en prices
y los agrega a sum
. La función de flecha debe actualizar sum
usando el valor price
y luego return
(devolver) ese valor. Dado que el total
debe almacenar todos los precios sumados, la función de flecha debe devolver return sum + price
.
Solución del código de ejemplo:
(Pulsa a continuación para revelar)
Dado que esta parte del tema final del curso Arreglos y evalúa tus conocimientos, no hay solución del código de ejemplo.
Conceptos de JavaScript: operadores aritméticos (+), expresión binaria (concatenación +), bloque de código (función de flecha), condicionales (declaración ternaria), console.log
, import
, .map()
, .reduce()
Código adicional (código oculto que se ejecuta antes del código del acertijo):
let cart = [
{name: 'towel', price: 15},
{name: 'soap', price: 6},
{name: 'comb', price: 4},
{name: 'sponge', price: 2}
];