var arr = [
{
url: '/1',
id: 1,
isLeaf: false,
children: [
{
url: '2',
id: 2,
isLeaf: false,
children: [
{
url: '3',
id: 3,
isLeaf: true
}
]
}
]
},
{
url: '/4',
id: 4,
isLeaf: false,
children: [
{
url: '5',
id: 5,
isLeaf: false,
children: [
{
url: '6',
id: 6,
isLeaf: false
}
]
}
]
}
]
输出:
[
{
path: '/1/2',
id: 2
},
{
path: '/4/5/6',
id: 6
}
]
说明:
父子的url拼接,去最后一级的id(isLeaf为true时取上一层的值)
递归遍历+条件判断。
大致思路就是,遍历
arr
,把每个节点作为node对象,判断它的isLeaf是否为true,拼接url、获取id,并递归遍历该节点的children
,至于具体怎么遍历,怎么写判断条件,自己去搜吧。