最近使用element的树形结构,想着就写点小东西,好比要获取树形结构叶子节点的全部属性,你们都知道,当树形结构的层级比较多的时候,若是经过普通的循环是解决不了的,我决定用递归实现比较好的选择,在工具函数中封装了这样一个方法。数组
直接上代码函数
// 获取全部叶子节点指定属性,arr格式与树形结构一致的数组;name为所要获取的属性名,可不传,默认为id;
childName为子节点集合的属性名,可不传,默认为children;
export const getAllNode = (arr, name, childName) => {
let str = ''
const arrs = []
if (!arr) {
return
}
if (!name) {
name = 'id'
}
if (!childName) {
childName = 'children'
}
const getChild = (arr) => {
for (let i = 0; i < arr.length; i++) {
arrs.push(arr[i][name])
if (arr[i][childName] && arr[i][childName].length > 0) {
getChild(arr[i].children)
}
}
str = arrs.join()
return str
}
return getChild(arr)
}
复制代码
直接在须要的地方引入该文件,而后直接调用该方法就能够了,仍是比较简单!若是你们还有更好的方法,但愿一块儿分享!工具