js合并数组相同key值的项

之前的回答答案,被点赞了,都快忘了,恰巧自己曾经也用到过,今日记录一下笔记。

原楼主问题:

var arr=[ {a:3,b:4}, {a:3,b:7}, {a:5,b:2}, {a:5,b:1} ]

怎样合并为:

var arr=[ {a:3,b:4,7}, {a:5,b:2,1} ]

答:

 filterRoomNames:function(roomNames){
        console.log(roomNames);
        var allRoom = {};
        if(roomNames.length>0){
            for(var i=0;i<roomNames.length;i++){
                var map = roomNames[i];
                for(var k in map){
                    //console.log(k+','+map[k]);
                    if(k!=null && k!='null'){
                                                if(allRoom.hasOwnProperty(k)){ //true
                            allRoom[k]+= ','+map[k];
                        }else{
                            allRoom[k]=map[k];
                        }
                    }
                }
            }
        }
        console.log(allRoom);
    }
解释:上方代码中为吾封装的一个过滤合并的方法,关于roomNames参数是一个数组集合,此数组集合中的json数据如下:
0: {null: "zhang3"}
1: {19-1907: "li4"}
2: {19-1908: "wang5"}
3: {null: "aa"}
4: {null: "bb"}
5: {null: "cc"}
6: {19-1904: "tt"}
7: {19-1904: "tl"}
8: {19-1904: "ty"}
9: {null: "tu"}
10: {null: "uc"}
11: {null: "kj"}
12: {19-1902: "km"}
13: {19-1901: "gc"}
14: {null: "gh"}
15: {null: "gk"}

最终合并输出如下:
{19-1907: "li4", 19-1908: "wang5", 19-1904: "tt,tl,ty", 19-1902: "km", 19-1901: "gc"}

主要关键在于map的key特性及判断key是否存在,再如此类可以此作为参考。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ruchiruzui2012

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值