JS从数组创建多值对象数组
JS creating multi value objects array from an array
试图得到这个['Team Instinct', 'Team Valor', 'Team Mystic']
对此
[{
answer: "Team Instinct",
id: asdfsodijha120-938a //nanoid()
},
{
answer: "Team Valor",
id: 12390i1-293-12093a2 //nanoid()
},
{
answer: "Team Mystic",
id: 123908320i09i09ss8a //nanoid()
}
]
到目前为止我尝试了什么
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()
})
},[])
我收到错误 TypeError: Cannot read properties of undefined (reading 'push')
您忘记了 return 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
},[])
当你使用reducer时
你渴望 return 推入后的价值。
所以第一个错误,你永远不会 return 回调函数中的结果。
第二个是您尝试将 reduce(数组)的结果分配给对象。
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;
},[]);
原答案正确,您漏了 return。但是,这里有另一种写法
const { nanoid } = require("nanoid")
let object = ['Team Instinct', 'Team Valor', 'Team Mystic'].reduce((prevValue, currentValue) => ([...prevValue, {
answer: currentValue,
id: nanoid()
}]), [])
试图得到这个['Team Instinct', 'Team Valor', 'Team Mystic']
对此
[{
answer: "Team Instinct",
id: asdfsodijha120-938a //nanoid()
},
{
answer: "Team Valor",
id: 12390i1-293-12093a2 //nanoid()
},
{
answer: "Team Mystic",
id: 123908320i09i09ss8a //nanoid()
}
]
到目前为止我尝试了什么
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()
})
},[])
我收到错误 TypeError: Cannot read properties of undefined (reading 'push')
您忘记了 return 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
},[])
当你使用reducer时 你渴望 return 推入后的价值。
所以第一个错误,你永远不会 return 回调函数中的结果。 第二个是您尝试将 reduce(数组)的结果分配给对象。
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;
},[]);
原答案正确,您漏了 return。但是,这里有另一种写法
const { nanoid } = require("nanoid")
let object = ['Team Instinct', 'Team Valor', 'Team Mystic'].reduce((prevValue, currentValue) => ([...prevValue, {
answer: currentValue,
id: nanoid()
}]), [])