JavaScript对象数组到按对象属性值分组的数组数组

JavaScript对象数组到按对象属性值分组的数组数组,javascript,arrays,ecmascript-6,Javascript,Arrays,Ecmascript 6,这对我来说有点复杂,要正确地用词来表达,所以我将在下面举一个例子,说明我试图在输入和预期输出方面做些什么。我试过一些方法,但它们似乎比需要的复杂得多,导致重复问题,或者完全不起作用。提前感谢人们提供的任何帮助。如果已经有一篇文章回答了这个问题,我很抱歉,我很乐意接受这个链接——正如我所说的,很难用语言表达出来 输入:对象数组 例: [ {prop:1}, {prop:1}, {prop:2}, {prop:3}, {prop:2} ] 输出:数组的数组,其中所有具有某些匹配属性的对象都被分组。

这对我来说有点复杂,要正确地用词来表达,所以我将在下面举一个例子,说明我试图在输入和预期输出方面做些什么。我试过一些方法,但它们似乎比需要的复杂得多,导致重复问题,或者完全不起作用。提前感谢人们提供的任何帮助。如果已经有一篇文章回答了这个问题,我很抱歉,我很乐意接受这个链接——正如我所说的,很难用语言表达出来

输入:对象数组

例:

[
{prop:1},
{prop:1},
{prop:2},
{prop:3},
{prop:2}
]
输出:数组的数组,其中所有具有某些匹配属性的对象都被分组。 例:

[
[{prop:1},{prop:1}],
[{prop:2},{prop:2}],
[{prop:3}]
]

使用对象简化reduce循环

var-arr=[
{prop:1},
{prop:1},
{prop:2},
{prop:3},
{prop:2}
]
常量结果=对象值(arr.reduce((acc,项目)=>{
acc[item.prop]=acc[item.prop]| |[];
acc[项目.道具].推送(项目);
返回acc;
}, {}));

控制台日志(结果)您好,您是否可以添加您解决问题的尝试(即使它不起作用),它将帮助我们向您展示您的错误/节省我们从头开始编写所有代码的时间