Jquery 通过重复键合并数组的值

Jquery 通过重复键合并数组的值,jquery,json,Jquery,Json,正在尝试合并json数组的重复键,并以csv格式生成相应的值 A=[{a:1,b:2},{a:1,b:1},{a:1,b:6},{a:2,b:5},{a:2,b:3}] 试图转换为 A=[{a:'1',b:'2,1,6'},{a:2,b:'5,3'}] 我试过的代码 var existingIDs = []; A= $.grep(A, function (v) { if ($.inArray(v.a, existingIDs) !== -1) {

正在尝试合并
json
数组的重复键,并以
csv
格式生成相应的值

A=[{a:1,b:2},{a:1,b:1},{a:1,b:6},{a:2,b:5},{a:2,b:3}]
试图转换为

A=[{a:'1',b:'2,1,6'},{a:2,b:'5,3'}]
我试过的代码

var existingIDs = [];
        A= $.grep(A, function (v) {
            if ($.inArray(v.a, existingIDs) !== -1) {
                return v.b+= ',';
            }
            else {
                existingIDs.push(v.a);
                return true;
            }
        });
输出结果如下所示

A=[{a:1,b:2},{a:1,b:'1,'},{a:1,b:'6,'},{a:2,b:5},{a:2,b:'3,'}]

使用
a
中的
1
2
等作为键创建一个临时对象,并不断添加
b
值,然后在该对象上迭代创建新数组:

var A = [{a:1,b:2},{a:1,b:1},{a:1,b:6},{a:2,b:5},{a:2,b:3}];
var temp = {};

for (var i=0; i<A.length; i++) {
    temp[A[i].a] =
        temp[A[i].a] === undefined ?
            A[i].b :
            temp[A[i].a] + ',' + A[i].b;
}

A = [];

for (var key in temp) {
    A.push({a: key, b:temp[key]})
}
vara=[{A:1,b:2},{A:1,b:1},{A:1,b:6},{A:2,b:5},{A:2,b:3}];
var temp={};

对于(var i=0;i

请发表评论