久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁技術(shù)文章
文章詳情頁

JS樹形結(jié)構(gòu)根據(jù)id獲取父級節(jié)點(diǎn)元素的示例代碼

瀏覽:31日期:2022-06-09 17:41:59
目錄
  • 封裝函數(shù)
  • 調(diào)用函數(shù)

封裝函數(shù)

// 傳入 id、樹形結(jié)構(gòu)數(shù)據(jù)
export function getParentTree(id, tree) {
  let arr = [] //要返回的數(shù)組
  for (let i = 0; i < tree.length; i++) {
    let item = tree[i]
    arr = []
    arr.push(item) //保存當(dāng)前節(jié)點(diǎn)id
    if (id== item.id) {
      //判斷當(dāng)前id是否是默認(rèn)id
      return arr //是則退出循環(huán)、返回?cái)?shù)據(jù)
    } else {
      //否則進(jìn)入下面判斷,判斷當(dāng)前節(jié)點(diǎn)是否有子節(jié)點(diǎn)數(shù)據(jù)
      if (item.children && item.children.length > 0) {
//合并子節(jié)點(diǎn)返回的數(shù)據(jù)
arr = arr.concat(getParentTree(id, item.children ? item.children : []))
console.log(arr)
if (arr.map(item2 => (item2 ? item2.id : "")).includes(id)) {
  //如果當(dāng)前數(shù)據(jù)中已包含默認(rèn)節(jié)點(diǎn),則退出循環(huán)、返回?cái)?shù)據(jù)
  return arr
}
      }
    }
  }

調(diào)用函數(shù)

const treeData = [{
  name: "1",
  id: 1,
  children: [{
    name: "1-1",
    id: 2,
    children: [{
      name: "1-1-1",
      id: 4,
    }],
    name: "1-2",
    id: 3,
    children: [{
      name: "1-2-1",
      id: 5,
    }],
  }]
},{
  name: "2",
  id: 6,
  children: [{
    name: "2-1",
    id: 7,
    children: [{
      name: "2-1-1",
      id: 9,
    }],
    name: "2-2",
    id: 8,
    children: [{
      name: "2-2-1",
      id: 10,
    }],
  }]
}]
console.log(getParentTree(5, treeData))

到此這篇關(guān)于JS樹形結(jié)構(gòu)根據(jù)id獲取父級節(jié)點(diǎn)元素的文章就介紹到這了,更多相關(guān)js獲取父級節(jié)點(diǎn)元素內(nèi)容請搜索以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持!

標(biāo)簽: JavaScript
主站蜘蛛池模板: 清水县| 张北县| 仁布县| 瓦房店市| 沿河| 博乐市| 邛崃市| 寿宁县| 宕昌县| 额济纳旗| 三亚市| 黔西| 手游| 奈曼旗| 石阡县| 虞城县| 丹棱县| 伽师县| 德昌县| 马山县| 石首市| 五大连池市| 龙泉市| 资源县| 新闻| 湖北省| 邢台市| 平定县| 县级市| 馆陶县| 武胜县| 将乐县| 台南市| 汽车| 句容市| 孝感市| 祁门县| 禹城市| 章丘市| 阳信县| 德化县|