递归一般是用来处理不确定层级的树形数据
比如想要获取树形菜单数据里面的每一个id就可以使用递归
var data = [{
name: 'a',
id: 101,
children: [{
name: 'bb',
id: 101101,
children: []
},
{
name: 'bb',
id: 101102,
children: [{
name: '101102101',
id: 101102101,
children: []
}]
},
{
name: 'bb',
id: 101103,
children: []
}, {
name: '101104',
id: 101104,
children: []
}
]
}];
然后就是用递归函数来遍历所有数据进行获取
// 用来保存id
var idArr = []
function getId(treeData, arr) {
data.forEach(ele => {
idArr.push(ele.id)
// 判断有子元素,并且子元素的长度大于0就再次调用自身
if (ele.children && ele.children.length > 0) {
getId(ele.children, arr)
}
})
}
getId(data, idArr)
console.log(idArr)