¿Por qué la segunda asignación necesita devolución y la primera devuelve el total variable automáticamente?
const total = inventors.reduce(((total, inventor) => total += inventor.passed - inventor.born), 0); const transportation = data.reduce(((prevVal, currentVal) => { if (!prevVal[currentVal]) { prevVal[currentVal] = 0; } prevVal[currentVal]++; return prevVal; }), {})Si se omite return prevVal, obtengo TypeError no capturado: no se pueden leer las propiedades de undefined
¿Cuál es la diferencia en cómo reduce() actúa con los valores? ¿Se efectúa por operación ternaria? Si es así, ¿por qué esto devuelve 0?
const transportation = data.reduce(((prevVal, currentVal) => (!prevVal[currentVal]) ? prevVal[currentVal] = 0 : prevVal[currentVal]++), {})Al usar llaves con una función de flecha, el retorno no está implícito, por lo que debe usar return