第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

有沒有人遇到過這個問題哈!關(guān)于遞歸問題 js

有沒有人遇到過這個問題哈!關(guān)于遞歸問題 js

慕村225694 2019-08-21 17:45:17
原數(shù)據(jù)格式letobj=[{1:'20190805',2:'1',3:'success'},{1:'20191120',2:'1.1',3:'success'},{1:'20190212',2:'1.1.1',3:'success'},{1:'20190212',2:'1.1.2',3:'success'},{1:'20190212',2:'1.1.3',3:'success'},{1:'20190212',2:'1.2',3:'success'},{1:'20190212',2:'1.2.1',3:'success'},{1:'20190212',2:'2',3:'success'},{1:'20190212',2:'2.1',3:'success'},{1:'20190212',2:'2.2.1',3:'success'},{1:'20190212',2:'2.2',3:'success'},{1:'20190212',2:'2.3',3:'success'},{1:'20190212',2:'2.3.1',3:'success'},...]最后想要下面這種結(jié)果格式,請問該怎么實現(xiàn)呢letdata=[{1:'20190805',2:'1',3:'success',children:[{1:'20191120',2:'1.1',3:'success',children:[{1:'20190212',2:'1.1.1',3:'success'},{1:'20190212',2:'1.1.2',3:'success'},{1:'20190212',2:'1.1.3',3:'success'},]},{1:'20191120',2:'1.2',3:'success',children:[{1:'20190212',2:'1.2.1',3:'success'},]}]},{1:'20190212',2:'2',3:'success',children:[{1:'20190212',2:'2.1',3:'success',children:[{1:'20190212',2:'2.2.1',3:'success'},]},{1:'20190212',2:'2.2',3:'success'},{1:'20190212',2:'2.3',3:'success',children:[{1:'20190212',2:'2.3.1',3:'success'}]}]},...]
查看完整描述

2 回答

?
慕碼人8056858

TA貢獻(xiàn)1803條經(jīng)驗 獲得超6個贊

/**
*
*@param{Array}source
*@returns{Array}分類好的數(shù)據(jù)
*/
functionmark(source){
vartemp={};
source.forEach(item=>{
temp[item["2"]]=item;
});
source.forEach(item=>{
varkey=item["2"],
parent;
//子級
if(key.length>1){
//子級的父id
key=key.slice(0,-2);
parent=temp[key];
if(parent){
parent.children=parent.children||[];
parent.children.push(item);
}
}
});
returnObject.keys(temp).reduce((ret,key)=>ret.concat(key.length===1?temp[key]:[]),[]);
}
                            
查看完整回答
反對 回復(fù) 2019-08-21
?
陪伴而非守候

TA貢獻(xiàn)1757條經(jīng)驗 獲得超8個贊

1樓的代碼有點局限性,稍微整改了一下:
/*
@paramspermission需要整合的數(shù)據(jù)(不一定有序)
@return[]
*/
//匹配父級的正則
constREG_CODE=/^(.+)\.\d+$/;
consthandlePermission=permission=>{
//數(shù)據(jù)備份,防止污染原數(shù)據(jù)
permission=permission.map(item=>Object.assign({},item));
//對數(shù)據(jù)進(jìn)行排序
permission.sort((a,b)=>a[2]-b[2]);
//將每一條數(shù)據(jù)都當(dāng)做父級
letparents=permission.reduce((data,item)=>(data[item[2]]=item,data),{});
//返回結(jié)果
letres=[];
//查找每一條數(shù)據(jù)對應(yīng)的父級
permission.forEach(item=>{
//獲取父級code
letparentCode=REG_CODE.exec(item[2]);
//不存在父級,則是頂級父類
if(!parentCode){
res.push(item);
return;
}
//如果存在父級,則掛載到父級的children中
if(parentCode&&parents[parentCode[1]]){
parents[parentCode[1]].children=parents[parentCode[1]].children||[];
parents[parentCode[1]].children.push(item);
}
});
returnres;
}
                            
查看完整回答
反對 回復(fù) 2019-08-21
  • 2 回答
  • 0 關(guān)注
  • 367 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號