Tratando de conseguir esto ['Team Instinct', 'Team Valor', 'Team Mystic']
A esto
[{ answer: "Team Instinct", id: asdfsodijha120-938a //nanoid() }, { answer: "Team Valor", id: 12390i1-293-12093a2 //nanoid() }, { answer: "Team Mystic", id: 123908320i09i09ss8a //nanoid() } ]Lo que probé hasta ahora
const { nanoid } = require("nanoid") const array = ['Team Instinct', 'Team Valor', 'Team Mystic'] let object = {} obcject = array.reduce((prevValue,currentValue) => { prevValue.push({ answer: currentValue, id: nanoid() }) },[]) ERROR I GET TypeError: Cannot read properties of undefined (reading 'push')
Olvidaste devolver prevValue;
const { nanoid } = require("nanoid") const array = ['Team Instinct', 'Team Valor', 'Team Mystic'] let object = {} obcject = array.reduce((prevValue,currentValue) => { prevValue.push({ answer: currentValue, id: nanoid() }) return prevValue },[])La respuesta original es correcta, te estás perdiendo el retorno. Sin embargo, aquí hay una forma alternativa de escribirlo.
const { nanoid } = require("nanoid") let object = ['Team Instinct', 'Team Valor', 'Team Mystic'].reduce((prevValue, currentValue) => ([...prevValue, { answer: currentValue, id: nanoid() }]), [])Cuando usa un reductor, desea devolver el valor después de presionarlo.
Entonces, primer error, nunca devuelve el resultado en la función de devolución de llamada. El segundo, es que intenta asignar el resultado de la reducción (una matriz) a un objeto.
const { nanoid } = require("nanoid"); const array = ['Team Instinct', 'Team Valor', 'Team Mystic']; const result = array.reduce((prevValue,currentValue) => { prevValue.push({ answer: currentValue, id: nanoid() }); return prevValue; },[]);