vue 数据重构 案例

// 后台返回    
    var oldList = [
        {    
            'groupName':'权限管理',
            'id':'10',
            'name':'初级权限',
            'type':"10010",
            'appId':1
        },
        {
            'groupName':'权限管理',
            'id':'11',
            'name':'中级权限',
            'type':"10011",
            'appId':1
        },
        {
            'groupName':'用户管理',
            'id':'20',
            'name':'初级用户',
            'type':"10020",
            'appId':1
        },
        {
            'groupName':'用户管理',
            'id':'21',
            'name':'中级用户',
            'type':"10021",
            'appId':1
        },
        {
            'groupName':'收款',
            'id':'30',
            'name':'微信收款',
            'type':"10030",
            'appId':1
        },
        {
            'groupName':'收款',
            'id':'31',
            'name':'支付宝收款',
            'type':"10031",
            'appId':1
        }
    ]


    // 重构之后

    var newList = [
        {
            groupName:'权限管理',
            list:[
                {name:'初级权限',id:'10',type:"10010",appId:1},
                {name:'中级权限',id:'11',type:"10011",appId:1}
            ]
        },
        {
            groupName:'用户管理',
            list:[
                {name:'初级用户',id:'20',type:"10020",appId:1},
                {name:'中级用户',id:'21',type:"10021",appId:1}
            ]
        },
        {
            groupName:'收款',
            list:[
                {name:'微信收款',id:'30',type:"10030",appId:1},
                {name:'支付宝收款',id:'31',type:"10031",appId:1}
            ]
        }
    ]
        
    
        
    var newData = [];
    function formatList(){
        for(var i=0;i<oldList.length;i++){
            var gName = oldList[i].groupName;
            console.log(gName)
            if(unique(gName)){
                newData.push({ 'groupName':gName,'list':[ { 'name':oldList[i].name,'id':oldList[i].id } ] })
            }
            else{
                for(var j=0;j<newData.length;j++ ){
                    if(newData[j].groupName == gName){
                        newData[j].list.push({'name':oldList[i].name,'id':oldList[i].id})
                    }
                }
            }
        }
        return newData;
    }
    
    function unique(name){
        for( var n=0;n<newData.length;n++ ){
            if( newData[n].groupName == name ){
                return false;
            }
        }
        return true;
    }
    
    console.log(formatList())

猜你喜欢

转载自www.cnblogs.com/suanshu/p/11722387.html