const list=[
{
id:1,name:'1'
},{
id:11,name:'11'
},{
id:12,name:'12'
},{
id:111,name:'111'
},{
id:121,name:'121'
}
]
list.map(o=>{
let parentId=''
if(o.id){
let len=String(o.id).trim().length
parentId-(len-1)>0 ? o.id.substr(0,len-1):nul
}
return Object.assign(o,{
parentId:parentId ? parentId :undefined
})
})
function initData(res){
//reduce 转换逻辑参照抖音前端石头
let data=JSON.parse(JSON.stringify(res))
return data.reduce(function(pre,cur,i,arr){
cur.children=arr.filter(n=>n.parentId===cur.id)
if(!cur.parentId){
pre.push(cur)
}
return pre
},[])
}
initData(list)
菜单扁平化数据处理为树级结构
于 2022-11-25 12:24:19 首次发布