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个取并集