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())