js对数组中json的处理

clipboard.png

var arr = [{

            a: 1,
            b: 1
        }, {
            a: 1,
            b: 2
        }, {
            a: 2,
            b: 1
        }]

怎么把这个数组变成下面这样
var arr1 = [{

            a: 1,
            b: 3
        },{
            a: 2,
            b: 1
        }]

如果a的值一样就让b相加,不一样的话让他重新输出。

阅读 2.3k
2 个回答
var arr1 = {};
arr.map(function(item,index){
    if(arr1[item.a]){
   arr1[item.a].b = arr1[item.a].b+item.b
  }else{
    arr1[item.a]=item
  })
})
arr1 = Object.values(arr1);

var arr1 = [];

arr1.push(arr[0]);
for(var i=1; i<arr.length; i++){
    arr1.map(function(e,index){
        if(arr[i].a == e.a){
            e.b = e.b + arr[i].b;
        }else if(index == arr1.length-1){
            arr1.push(arr[i])
        }
    })
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题