2 wwdd12391 wwdd12391 于 2016.03.26 13:38 提问

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} ]

2个回答

showbo
showbo   Ds   Rxr 2016.03.26 20:14
已采纳
   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)
Royal_lr
Royal_lr   Ds   Rxr 2016.03.26 16:27

合并是怎么合呢,,c里面的数据是取单一的,,还是2个取并集

wwdd12391
wwdd12391 取并集
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!