根据id对对象进行分组,并创建对象数组
Group objects based on a id, and create a array of ojects
从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]}]
做这件事最好的方法是什么? 假设数组将以正确的顺序出现,并且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
。
相关文章:
- 如何在jquery中从$.each循环创建对象数组
- 无法创建对象数组
- 创建对象数组的封装问题
- 下划线 从对象元素创建对象数组
- 读取 json 以使用 jQuery .each() 创建对象数组
- 基于文件名数据创建对象数组
- 按键/值在数组内创建对象数组
- 如何从字符串创建对象数组
- 如何从javascript中具有相同键的对象创建对象数组,对象中包含数组
- 如何从多个数组创建对象数组
- 如何在json中创建对象数组
- 在javascript中创建对象数组
- 根据id对对象进行分组,并创建对象数组
- 如何使用javascript循环创建对象数组
- 我如何在函数参数中创建对象数组,为每个对象调用函数
- 从数组中创建对象数组
- jQuery .each()创建对象数组
- 如何使用html dom为国家列表创建对象数组
- JavaScript / mongoose - 循环访问数组以创建对象数组
- 如果我们使用new array (len).fil({})创建对象数组;然后在任意一个对象中添加一个键,它会被反射到所有