对象数组,一个属性值相等,另一个累加

[{a:1000,b: 10},{a:1000,b:11},{a:10001,b:10}]
把数组对象里面的a属性值相同的b属性累加
得到这样的结果:
[{a:1000,b:21},{a:10001,b:10}]

obj_merge(obj){
     var obj1 = {};
     if(Object.prototype.toString.call(obj) != '[object Array]'){
        return obj;
     }
     var obj2 = new Array(); 
     obj.map(function(x){
        var temp =x.a;
        if(temp in obj1){
            var sum = obj1[temp].b*1+x.b*1;
            obj1[temp]={a:temp,b:sum}
            
        }else{
            obj1[temp]={a:temp,b:x.b}
        }
     })  
     for(i in obj1){
        obj2.push(obj1[i]);
     }
     return obj2;
}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • JavaScript语言精粹 前言 约定:=> 表示参考相关文章或书籍; JS是JavaScript的缩写。 本书...
    微笑的AK47阅读 590评论 0 3
  • 概要 64学时 3.5学分 章节安排 电子商务网站概况 HTML5+CSS3 JavaScript Node 电子...
    阿啊阿吖丁阅读 9,298评论 0 3
  • 专业考题类型管理运行工作负责人一般作业考题内容选项A选项B选项C选项D选项E选项F正确答案 变电单选GYSZ本规程...
    小白兔去钓鱼阅读 9,051评论 0 13
  • 在C语言中,五种基本数据类型存储空间长度的排列顺序是: A)char B)char=int<=float C)ch...
    夏天再来阅读 3,402评论 0 2
  • 首先给大家介绍javascript jquery中定义数组与操作的相关知识,具体内容如下所示: 1.认识数组 数组...
    JamHsiao_aaa4阅读 1,998评论 0 2