vue经过递归获取树形结构叶子节点的属性

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

直接在须要的地方引入该文件,而后直接调用该方法就能够了,仍是比较简单!若是你们还有更好的方法,但愿一块儿分享!工具

相关文章
相关标签/搜索