最近使用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)
}
复制代码

直接在需要的地方引入该文件,然后直接调用该方法就可以了,还是比较简单!如果大家还有更好的方法,希望一起分享!

转载于:https://juejin.im/post/5c2eed6951882524ec3a85b4

Logo

前往低代码交流专区

更多推荐