让前端飞

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

2019-04-19  本文已影响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); 
上一篇下一篇

猜你喜欢

热点阅读