【发布时间】:2020-06-06 14:07:43
【问题描述】:
所以我有这个数据结构:
const Array= [
{
court: 'court1',
judge: 'judge1'
},
{
court: 'court1',
judge: 'judge3'
},
{
court: 'court1',
judge: 'judge2'
},
{
court: 'court1',
judge: 'judge1'
},
{
court: 'court2',
judge: 'judge1'
},
{
court: 'court2',
judge: 'judge2'
}
]
应该修改成这样:
Obj = {
court1: ["judge1", "judge3", "judge2"],
court2: ["judge1", "judge2"]
}
所以最后我找到了一些决定并像这样编辑自己:
let result = Array.reduce((acc, cur) => {
acc[cur.court] = acc[cur.court] || []
if (acc[cur.court].indexOf(cur.judge) === -1) {
acc[cur.court].push(cur.judge)
}
return acc
}, Object.create(null))
console.log(result)
但我试图理解为什么acc[cur.court] = acc[cur.court] || [] 行会像这样创建一个新对象:
Obj = {
court1: [],
court2: []
}
你能解释一下吗?也许你知道更优雅的决定? 谢谢!
【问题讨论】:
标签: javascript arrays reduce