Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从数组创建对象_Javascript_Arrays_Node.js_Mapping - Fatal编程技术网

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所寻找的。除非我遗漏了什么,否则你的答案与我的答案相同!我添加了代码剪贴宠物让未来的访问者了解这个问题的可读性。如果有人坚持的话,我会删除我的答案。我不认为所有的开发人员都能理解箭头函数。你不必删除你的答案。是的,所有的开发人员可能都不理解箭头函数。