Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/363.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.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_Json_Javascript Objects - Fatal编程技术网

Javascript 将数组中具有相同值的对象排序为同一数组中的一个对象

Javascript 将数组中具有相同值的对象排序为同一数组中的一个对象,javascript,arrays,json,javascript-objects,Javascript,Arrays,Json,Javascript Objects,我发出获取请求,返回如下对象数组: [ {"id":11,"name":"test1","day":"MON","level":2}, {"id":13,"name":"test2","day":"TUE","level":3}, {&quo

我发出获取请求,返回如下对象数组:

[
   {"id":11,"name":"test1","day":"MON","level":2},
   {"id":13,"name":"test2","day":"TUE","level":3},
   {"id":14,"name":"test1","day":"WED","level":4},
   {"id":15,"name":"test2","day":"FRI","level":5}
]
在这个数组中,我有四个对象,每两个都有相同的名称,所以我希望结果如下:

 {
           "test1" : [
                       {"id":11,"name":"test1","day":"MON","level":2}, 
                       {"id":14,"name":"test1","day":"WED","level":4}
                    ],
           "test2" :[
                      {"id":13,"name":"test2","day":"TUE","level":3}, 
                      {"id":15,"name":"test2","day":"FRI","level":5}
                    ]
  }

您可以使用reduce函数

const arr=[
{“id”:11,“name”:“test1”,“day”:“MON”,“level”:2},
{“id”:13,“name”:“test2”,“day”:“TUE”,“level”:3},
{“id”:14,“name”:“test1”,“day”:“WED”,“level”:4},
{“id”:15,“name”:“test2”,“day”:“FRI”,“level”:5}
];
常数结果=arr.reduce((acc,cur)=>{
acc[当前名称]=acc[当前名称]| |[];
acc[当前名称].推送(当前);
返回acc;
}, {})
控制台日志(结果);

log(Object.values(result.flat())现在有道理了。您要查找的是
groupby
。遗憾的是,JS没有为此提供内置的方法,因为这是一项非常常见的任务,但是如果你在SOi上搜索它,你会发现大约一百万个结果/答案。我注意到,
结果
它打印为对象如何将其设置为数组在你的问题中,你提到你想要一个对象。我说得对吗?是的,先生,你说得对,但如果你不介意怎么做,我会很感激的。thankshow阵列会是什么样子?我认为object(正如您所期望的)会让人感觉更深刻我对此感到抱歉,它有点混乱,我想到了array,因为我想在react native中打印从您的答案
test1和test2
中得到的结果值,但我不确定是否有其他方法可以做到这一点。谢谢