美文网首页让前端飞
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