Javascript 从数组创建对象
我正在尝试将数组转换为映射, 该数组看起来像:Javascript 从数组创建对象,javascript,arrays,node.js,mapping,Javascript,Arrays,Node.js,Mapping,我正在尝试将数组转换为映射, 该数组看起来像: var array = [{ "id" : 123 }, { "id" : 456 }, { "id" : 789 }]; 我试图构建的最后一个对象应该如下所示: var result = { "123": { id: 123 } , "456": { id: 456 } , "789": { id: 789 } }; 任何有效的实施方法都将受到赞赏:) 谢谢使用减少 var数组=[{ “id”:123 }, {
var array = [{
"id" : 123
}, {
"id" : 456
}, {
"id" : 789
}];
我试图构建的最后一个对象应该如下所示:
var result = {
"123": { id: 123 } ,
"456": { id: 456 } ,
"789": { id: 789 }
};
任何有效的实施方法都将受到赞赏:)
谢谢使用
减少
var数组=[{
“id”:123
}, {
“id”:456
}, {
“id”:789
}];
var expectedValue={
“123”:{id:123},
“456”:{id:456},
“789”:{id:789}
};
var result=array.reduce((acc,c)=>(acc[c.id]=c,acc),{});
log('result:',result);
console.log('(JSON.stringify(expectedValue)==JSON.stringify(result))?',(JSON.stringify(expectedValue)==JSON.stringify(result))代码>
.as控制台包装{最大高度:100%!重要;顶部:0;}
var数组=[
{
“id”:123,
“otherProp”:“true”
},
{
“id”:456,
“otherProp”:“false”
},
{
“id”:789,
“otherProp”:“true”
}
];
var结果=数组.reduce(函数(acc、cur、i){
acc[当前id]=当前;
返回acc;
}, {});
控制台日志(结果)代码>@AnkitAgarwal。。。至少,关于{array[0]}
,{array[1]}
等等,OP想要什么几乎是显而易见的,因为提供的代码读取var array=[{“id”:123,…},…
@AnkitAgarwal…你批评的答案不正确,也提供了能准确产生OP要求的结果的代码。因此,你自己从未尝试过代码,但立即得出了一个不合理的结论。仍然可能被批评的是没有任何解释的一行代码。如果是,另外在上,作为工作示例代码提供。您运行的误会可能已被避免。您可能会考虑删除否决票,以防您出于愤怒而这样做。@PeterSeliger感谢您的编辑。我还将添加一个演示。您的预期输出非常模糊。请在输入和输出中使用实际值,而不是psuedo代码不清楚。问题解释很明显。@Usman解释一下。这一点绝对不明显。我不认为堆栈溢出像代码存储库一样,它不一定是在编译器上运行的代码没有语法错误。@Usman我绝对同意,但如果OP发布了一些模棱两可的内容并说“我想要这个"这也是模棱两可的,然后发布除问题以外的任何内容以获得清晰的信息,这对未来的访问者来说都是混乱和浪费时间。如果你在其中添加一些值并将其转换为代码片段以便运行,那么它可能正是OP所寻找的。除非我遗漏了什么,否则你的答案与我的答案相同!我添加了代码剪贴宠物让未来的访问者了解这个问题的可读性。如果有人坚持的话,我会删除我的答案。我不认为所有的开发人员都能理解箭头函数。你不必删除你的答案。是的,所有的开发人员可能都不理解箭头函数。