Javascript 如何将id、值数组列表转换为[id]:[value]类型对象

Javascript 如何将id、值数组列表转换为[id]:[value]类型对象,javascript,object,Javascript,Object,如何转换对象列表,如: [{id:3, value:"value1"}, {id:4, value:"value2"}] 到 我不确定这是最好的解决方案。但是工作 var list=[{id:3,值:“value1”},{id:4,值:“value2”}] var result=Object.assign({},…list.map((obj,index)=>{ 返回{[obj.id]:obj.value}; })) 控制台日志(结果)Reduce将解决您的问题: var list=[{id

如何转换对象列表,如:

[{id:3, value:"value1"}, {id:4, value:"value2"}]

我不确定这是最好的解决方案。但是工作

var list=[{id:3,值:“value1”},{id:4,值:“value2”}]
var result=Object.assign({},…list.map((obj,index)=>{
返回{[obj.id]:obj.value};
}))

控制台日志(结果)Reduce将解决您的问题:

var list=[{id:“foo”,value:“bar”},{id:“baz”,value:“bad”}];
var结果=列表。减少((对象,项目)=>{
obj[item.id]=item.value;
返回obj
}, {});
控制台日志(结果)可以与一起使用,也可以用于具有的对象

var数组=[{id:3,值:“value1”},{id:4,值:“value2”}],
结果=Object.assign(…array.map(({id,value})=>({[id]:value}));

控制台日志(结果)取决于您对“最佳”的定义。但是,当我尝试您的解决方案时,
reduce()
解决方案和简单的
for
循环在旧的
for
循环中是最快的:)

var list=[{id:3,值:“value1”},{id:4,值:“value2”}];
var result={};
对于(变量i=0;i控制台日志(结果)如果您有工作代码,您希望在这个问题上进行改进,那么您可能会处于更好的位置。您当前的解决方案已经是一个单行程序,或者可以格式化为单行程序,特别是如果您将其更改为使用短箭头函数语法,而不使用
{}
返回
,则效果很好。如果您知道更多的最佳解决方案,请分享:)谢谢您的回复。如果我们必须验证对象的模式,我们如何解决这个问题?。我需要验证输入列表,因为我必须从mongodb Collection处理它。非常感谢。我非常需要最快的方法来处理大量数据。:)我会用传统的方法。谢谢。@riguangzheng不客气。这通常是最简单的解决方案,效果最好。虽然
Object.assign
reduce
也有它们的优点。
 {3:"value1", 4:"value2"}