处理对象数组时,根据某个属性名相同,求某一项的和。

当我们从后台得到数据格式如下,我们需要求每个用户money的和,就可以这样做。

   var arry = [
            {user_id:1,money:100},
            {user_id:2,money:33},
            {user_id:1,money:12},
            {user_id:3,money:21},
            {user_id:2,money:43},
            {user_id:1,money:12} 
        ]

  var temp = {};
  for(var i in arry) {
       var key= arry[i].user_id;
       if(temp[key]) {
           temp[key].money += arry[i].money;
           temp[key].user_id = arry[i].user_id;
           
       } else {
           temp[key] = {};
           temp[key].money = arry[i].money;
           temp[key].user_id = arry[i].user_id;
       }
   }
   console.log(temp)
   
   var newArry = [];
   for(var k in temp){
       newArry.push(temp[k])
   }
   console.log(newArry)

控制台输出如下:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_41786576/article/details/83582624