问题描述
- js对象数组的合并问题
-
var arr=[ {a:3,b:0,c:1}, {a:3,b:0,c:2}, {a:5,b:0,c:0}, {a:5,b:1,c:0} ]
判断:若a值相同,b也相同,合并
var arr=[ {a:3,b:0,c:1,2}, {a:5,b:0,c:0}, {a:5,b:1,c:0} ]
解决方案
var arr = [{ a: 3, b: 0, c: 1 }, { a: 3, b: 0, c: 2 }, { a: 5, b: 0, c: 0 }, { a: 5, b: 1, c: 0 }, { a: 3, b: 0, c: 3 }]
var rst = {},k;
for (var i = 0; i <arr.length-1; i++) {
k = arr[i].a + '-' + arr[i].b;
if (rst[k]) {
if (typeof rst[k].c == 'number') rst[k].c = [rst[k].c, arr[i].c];
else rst[k].c.push(arr[i].c);
}
else rst[k] = arr[i];
}
arr = [];
for (k in rst) arr.push(rst[k]);
console.log(arr)
解决方案二:
合并是怎么合呢,,c里面的数据是取单一的,,还是2个取并集
时间: 2024-12-22 18:27:16