美文网首页让前端飞
json中的数据,把存在相同key值的进行合并

json中的数据,把存在相同key值的进行合并

作者: 阿克兰 | 来源:发表于2019-04-19 18:00 被阅读1次

这是合并之前

narr=[ {id: "1", parent: "a"}
 {id: "2", parent: "a"}
 {id: "3", parent: "b"}]

想要合成这样的结构

[{id:["1","2"], parent: "a"},{id:["3"], parent: "b"}]

合并代码如下

var map = {};
        for(var o of narr){
            if(!map.hasOwnProperty(o.parent)){    //### [使用 `hasOwnProperty` 方法判断属性是否存,返回布尔
                map[o.parent] = o;
                const val = map[o.parent].id;
                map[o.parent].id = [val];
            }else{
                map[o.parent].id.push(o.id);
            }
        }
        function transform(obj){
            var arr = [];
            for(var item in obj){
            arr.push(obj[item]);
        }
            finalarr(arr)
      // 更改arr中key的名字,如果没有需求可以忽略
        function finalarr(farry){ 
            if(farry.length>0){
                farry.forEach(function(item,index){
                    var val=item.id;
                    var mval=val.join(',');
                    delete item.id;
                    item['monitoring']=mval;
                    var pval=item.parent;
                    delete item.parent;
                    item['device']=pval;
                  
                    
                })
                // 绑定传值
                GetBings(JSON.stringify(farry))
            }

        }               
        }
        transform(map); 

相关文章

网友评论

    本文标题:json中的数据,把存在相同key值的进行合并

    本文链接:https://www.haomeiwen.com/subject/pzrcgqtx.html