我有一个按ID分组的集合。每个id都包含对象数组。我想遍历它并创建一个目标集合,它将按照示例中所示的“Id”列进行分组。我不会使用下划线js。我必须使用javascript reduce方法来实现这一点。Groupby不使用下划线js
var targetCollection = [{
123456: [
{ "Id": "1", "name": "xxx", "age": "22" },
{ "Id": "1", "name": "yyy", "age": "15" },
{ "Id": "5", "name": "zzz", "age": "59" }
],
789456: [
{ "Id": "1", "name": "xxx", "age": "22" },
{ "Id": "1", "name": "yyy", "age": "15" },
{ "Id": "5", "name": "zzz", "age": "59" }
]
}]
var targetOutput = [{
123456: {
1: [{ "Id": "1", "name": "xxx", "age": "22" }, { "Id": "1", "name": "yyy", "age": "15" }],
5: [{ "Id": "5", "name": "zzz", "age": "59" }]
},
789456: {
1: [{ "Id": "1", "name": "xxx", "age": "22" }, { "Id": "1", "name": "yyy", "age": "15" }],
5: [{ "Id": "5", "name": "zzz", "age": "59" }]
}
}]
Code Snippet I have tried which didn't work
var newArray = [];
$.each(targetCollection, function (key, value) {
var newTarget = $(this);
var targetCollectionNew = newTarget.reduce(function (result, current) {
result[current.ParentAreaID] = result[current.ParentAreaID] || [];
result[current.ParentAreaID].push(current);
return result;
}, {});
newArray.push(targetCollectionNew);
});
console.log('newArray', newArray);
我试图与阵列减少方法,它没有工作。请帮帮我。
的解决方案是很容易的,但你尝试过这么远吗?哪些代码不起作用? –
如果你能让我知道解决方案,那将是非常棒的。我已经尝试了很多东西,现在它不会退缩到你所要求的位置。 –
发布最新代码不应太难。否则,你只需发布一个问题集。 –