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)
}
複製代碼

直接在須要的地方引入該文件,而後直接調用該方法就能夠了,仍是比較簡單!若是你們還有更好的方法,但願一塊兒分享!工具

相關文章
相關標籤/搜索