Javascript 基于id对对象进行分组,并创建对象数组
从ajax请求中,我得到了以下对象数组:Javascript 基于id对对象进行分组,并创建对象数组,javascript,jquery,Javascript,Jquery,从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 我想根据这些值的
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
我想根据这些值的组id
对它们进行分组,并生成一个如下所示的对象数组
[{name: 'Name1', data: [1 ,3]}, {name: 'Name2', data: [1, 2]}]
最好的方法是什么?假设数组的顺序正确,并且
group\u id
总是得到相同的group\u 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
。循环响应数据,构造每个对象,然后将它们添加到数组中应该可以工作。您知道组ID的顺序是否正确吗?是的,它们将按顺序出现。