javascript中的元素分组

javascript中的元素分组,javascript,arrays,Javascript,Arrays,我用d3.nest将另一个列表中的元素分组,从而创建了这个列表 array = [ {key: "6S", values: [{Id: "1234a", ECTS: 3}, {Id: "1234b", ECTS: 3}]}, {key: "7S", values: [{Id: "1534a", ECTS: 5}, {Id: "154b", ECTS:

我用d3.nest将另一个列表中的元素分组,从而创建了这个列表

array = [ {key: "6S", values: [{Id: "1234a", ECTS: 3},
                               {Id: "1234b", ECTS: 3}]}, 
          {key: "7S", values: [{Id: "1534a", ECTS: 5},
                               {Id: "154b", ECTS: 4},]} ]
从这个列表中,我想创建如下内容:

array = [{key: "6S", values: { 3: [{Id: "1234a"}, {Id: "1234b"}]}},

        {key: "7S", values: { 5: [{Id: "1534a"}], 4: [{Id:"1534a"}]}}]
实际上,我想通过ECTS对每个键6S、7S的数据进行分组。 我试过用群比。。。。但它不起作用。问题是我想要分组的元素是对象,已经分组过一次了。 你知道我如何将这些项目分组吗?

你可以试试下面的方法

var数组=[{key:6S,值:[{Id:1234a,ECTS:3},{Id:1234b,ECTS:3}]},{key:7S,值:[{Id:1534a,ECTS:5},{Id:154b,ECTS:4},]}; array.forEachobj=>{ var值={}; //迭代数组并创建更新的值 obj.values.forEachitem=>{ 值[item.ECTS]=值[item.ECTS]| |[]; 值[item.ECTS].push{Id:item.Id}; }; //在对象中设置更新的值 obj.values=值; }; console.logarray 变量数组=[{ 关键词:6S, 价值观:[{ 编号:1234a, ECTS:3 }, { 编号:1234b, ECTS:3 } ] }, { 关键:7秒, 价值观:[{ 识别号:1534a, ECTS:5 }, { 编号:154b, ECTS:4 }, ] } ] array=array.mapfunctionv1{ var updatedVal=v1.values.reducefunctionobj,v2{ obj[v2.ECTS]=obj[v2.ECTS]| |[]; 对象[v2.ECTS]。推送{ Id:v2.Id }; 返回obj; }, {}; v1.values=updatedVal; 返回v1; }; console.logarray;