从ajax请求中我得到了这个对象数组:
0: Object
group_id: 2
group_name: "Name1"
rez: 1
1: Object
group_id: 2
group_name: "Name1"
rez: 3
2: Object
group_id: 3
group_name: "Name2"
rez: 1
3: Object
group_id: 3
group_name: "Name2"
rez: 2
我想根据group_id
对这些值进行分组,并生成一个看起来像这样的对象数组。
[{name: 'Name1', data: [1 ,3]}, {name: 'Name2', data: [1, 2]}]
这是最好的方法吗?
答案 0 :(得分:1)
假设数组的顺序正确,且group_id
始终产生相同的group_name
,您可以使用此算法生成所需的对象:
var out = [];
for (var j in arr) {
var obj = arr[j];
var last = out[out.length-1];
if (last != undefined && last.name == obj.group_name) {
var data = last.data;
data.push(obj.rez);
out[out.length-1].data = data;
} else {
var newObj = {name: obj.group_name, data: [obj.rez]};
out.push(newObj);
}
}
注意:在此示例中,您收到的数组将被赋予变量名arr
。