亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

求大佬指點哈!下面的數據格式化怎么寫?

求大佬指點哈!下面的數據格式化怎么寫?

MMTTMM 2019-06-13 10:12:58
現需要一個樹形菜單(需要根據數據情況,自動生成,沒有上線,極端情況就是有很多級菜單),現用插件替代,需要如下數據格式[{name:'菜單名1',children:[{name:'菜單名1-1',children:[{name:'菜單名1-1-1'}]}]},{name:'菜單名2',children:[{name:'菜單2-2'}]},{name:'菜單3'}]//數據會通過children包含子菜單,有多少級子菜單,數據內部就會有多少個children的嵌套現后臺提供的數據格式如下所示[{name:'菜單一',children:{'aaa':{name:'aaa'},'bbb':{name:'bbb',children:{'ccc':{name:'ccc'},'ddd':{name:'ddd'}}}}},{name:'菜單2',children:{'eee':{name:'eee'}}},{name:'菜單3'}]//后臺給的數據,在children中并非數組,而是將子菜單的名字當作了json的key,然后對應一個json字段{name:'菜單的名字'}自己寫的半成品方法如下所示vartreeData=[];functioncreatedTreeData(data){data.forEach(function(item){functionchildren(childrenData){varchildrenArr=[]for(keyinchildrenData){//就是在這個forin的遞歸中始終出現問題}returnchildrenArr}treeData.push({name:item.name,children:children(item.children)})})}//ps:請勿使用ES6語法,因為基于一個老項目增加一個新功能,并沒有babel在線等,謝謝啦
查看完整描述

2 回答

?
白板的微信

TA貢獻1883條經驗 獲得超3個贊

emmmm...
functionhandleChildren(obj){
returnObject.keys(obj).map(function(v){
varchildren=obj[v].children;
if(children)obj[v].children=handleChildren(children);
returnobj[v];
});
}
functioncreatedTreeData(arr){
returnarr.map(function(v){
varchildren=v.children;
if(children)v.children=handleChildren(children);
returnv;
});
}
createdTreeData(arr);
                            
查看完整回答
反對 回復 2019-06-13
  • 2 回答
  • 0 關注
  • 370 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號