递归一般是用来处理不确定层级的树形数据
比如想要获取树形菜单数据里面的每一个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)