Javascript 数组到基于给定键的对象

Javascript 数组到基于给定键的对象,javascript,json,Javascript,Json,我声明了一个使用对象的数组。分配: var obj=[{ id:1, 价值:“abc” }, { id:2, 值:“xyz” }]; log(Object.assign({},obj))您可以对对象使用reduce()方法。分配 var obj=[{id:1,值:'abc'},{id:2,值:'xyz'}]; var result=obj.reduce((r,e)=>Object.assign(r,{[e.id]:e}),{}); console.log(result)您可以对对象使用red

我声明了一个使用
对象的数组。分配

var obj=[{
id:1,
价值:“abc”
}, {
id:2,
值:“xyz”
}];
log(Object.assign({},obj))
您可以对
对象使用
reduce()
方法。分配

var obj=[{id:1,值:'abc'},{id:2,值:'xyz'}];
var result=obj.reduce((r,e)=>Object.assign(r,{[e.id]:e}),{});
console.log(result)
您可以对
对象使用
reduce()
方法

var obj=[{id:1,值:'abc'},{id:2,值:'xyz'}];
var result=obj.reduce((r,e)=>Object.assign(r,{[e.id]:e}),{});
console.log(result)
您可以直接使用来执行此操作,并且不需要
对象。在此处分配

var obj=[{id:1,值:'abc'},{id:2,值:'xyz'}];
让结果=目标减少((附件,项目)=>{
acc[项目id]=项目;
返回acc;
}, {});
控制台日志(结果)
您可以直接使用来执行此操作,并且不需要
对象。在此处分配

var obj=[{id:1,值:'abc'},{id:2,值:'xyz'}];
让结果=目标减少((附件,项目)=>{
acc[项目id]=项目;
返回acc;
}, {});

控制台日志(结果)
如果要使用
.id
作为键,可以使用
reduce
Object.assign

let obj=[{id:1,值:'abc'},{id:2,值:'xyz'}];
让result=obj.reduce((c,v)=>Object.assign(c,{[v.id]:v}),{});

控制台日志(结果)
如果要使用
.id
作为键,可以使用
reduce
Object.assign

let obj=[{id:1,值:'abc'},{id:2,值:'xyz'}];
让result=obj.reduce((c,v)=>Object.assign(c,{[v.id]:v}),{});

控制台日志(结果)您可以使用想要的键映射对象中的对象,并将其指定给单个对象

var objects=[{id:1,值:'abc'},{id:2,值:'xyz'}],
结果=Object.assign(…objects.map(o=>({[o.id]:o}));

控制台日志(结果)您可以使用想要的键映射对象中的对象,并将其指定给单个对象

var objects=[{id:1,值:'abc'},{id:2,值:'xyz'}],
结果=Object.assign(…objects.map(o=>({[o.id]:o}));

控制台日志(结果)为什么需要它为1而不是零?有序数组中的第一个键通常是0。为什么需要它是1而不是0?序数数组中的第一个键通常是0。谢谢Eddie!:-)谢谢你,埃迪!:-)谢谢你,尼纳德!:-)不客气,请注意,我们正在传递数组中每个对象的引用,而不是创建新对象,但是您可以通过
e
上的object assign更改,或者您可以使用扩展语法
object.assign(r,{[e.id]:{…e}})
这样。明白了!再次感谢!:-)谢谢你,尼纳德!:-)不客气,请注意,我们正在传递数组中每个对象的引用,而不是创建新对象,但是您可以通过
e
上的object assign更改,或者您可以使用扩展语法
object.assign(r,{[e.id]:{…e}})
这样。明白了!再次感谢!:-)