Actualmente estoy aprendiendo JavaScript y encontré este problema:
const numArray = [1, 6, 9, 4, 21, 8, 15]; const sumEvenOdd = numArray.reduce((acc, current) => console.log(acc) && current % 2 === 0 ? acc.map(i => i.hasOwnProperty('even') ? {...i, even: i.even + current} : i) : acc.map(i => i.hasOwnProperty('odd') ? {...i, odd: i.odd + current} : i), [{"even": 0, color: 'red'}, {"odd": 0, color: 'green'}] ); const numArray = [1, 6, 9, 4, 21, 8, 15]; const sumEvenOdd = numArray.reduce((acc, current) => console.log(acc) || current % 2 === 0 ? acc.map(i => i.hasOwnProperty('even') ? {...i, even: i.even + current} : i) : acc.map(i => i.hasOwnProperty('odd') ? {...i, odd: i.odd + current} : i), [{"even": 0, color: 'red'}, {"odd": 0, color: 'green'}] );Cuando ejecute cada uno de los códigos anteriores, notará que el primero solo modifica la propiedad "impar" , que no es lo que esperaba cuando usé el operador && pero cuando lo cambié a || operator Obtuve el código que esperaba originalmente. ¿Alguien puede explicarme cómo obtuve esas 2 salidas?