最近使用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)
}
复制代码
直接在需要的地方引入该文件,然后直接调用该方法就可以了,还是比较简单!如果大家还有更好的方法,希望一起分享!
所有评论(0)