如何将以下这些输入转换为输出。
输入:
[{"id":1, "subid":5},
{"id":1, "subid":9},
{"id":2, "subid":16},
{"id":2, "subid":27}]
输出:
[{1:[5,9]},
{2:[16,27]}]
这是我目前尝试过的:
var newobj = new Object();
listOfObject.forEach(function(i) {
var id = i.id
newobj[id] = []
newobj[id].push(i.subid)
return newobj
})
最佳答案
像这样减少数据:
var arrayData = [{"id":1, "subid":5}, {"id":1, "subid":9}, {"id":2, "subid":16}, {"id":2, "subid":27}];
var result = arrayData.reduce(function (result, obj) {
var id = obj.id;
result[id] = (result[id] || []);
result[id].push(obj.subid);
return result;
}, {});
关于javascript - 将对象数组过滤为对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34094732/