欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時間:2023年05月13日 10:05:50   作者:戰(zhàn)立標(biāo)  
這篇文章主要介紹了JS樹形結(jié)構(gòu)根據(jù)id獲取父級節(jié)點元素,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下

封裝函數(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é)點id
    if (id== item.id) {
      //判斷當(dāng)前id是否是默認(rèn)id
      return arr //是則退出循環(huán)、返回數(shù)據(jù)
    } else {
      //否則進入下面判斷,判斷當(dāng)前節(jié)點是否有子節(jié)點數(shù)據(jù)
      if (item.children && item.children.length > 0) {
        //合并子節(jié)點返回的數(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é)點,則退出循環(huán)、返回數(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é)點元素的文章就介紹到這了,更多相關(guān)js獲取父級節(jié)點元素內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • JS中將blob返回值轉(zhuǎn)換為json格式的問題小結(jié)

    JS中將blob返回值轉(zhuǎn)換為json格式的問題小結(jié)

    這篇文章主要介紹了JS中如何將blob返回值轉(zhuǎn)換為json格式,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2023-12-12
  • js 數(shù)組當(dāng)前行添加數(shù)據(jù)方法詳解

    js 數(shù)組當(dāng)前行添加數(shù)據(jù)方法詳解

    這篇文章主要介紹了js 數(shù)組當(dāng)前行添加數(shù)據(jù)方法詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • javascript 精確獲取樣式屬性(下)

    javascript 精確獲取樣式屬性(下)

    繼續(xù)上一部分,我們要看一下顏色?;鸷孟癫还苋叨欢紩D(zhuǎn)變?yōu)閞gb格式,不過我們通常比較習(xí)慣的是hex格式。這就用到以下兩函數(shù)。
    2010-01-01
  • Ajax+FormData+javascript實現(xiàn)無刷新表單信息提交

    Ajax+FormData+javascript實現(xiàn)無刷新表單信息提交

    在前端開發(fā)中ajax,formdata和js實現(xiàn)無刷新表單信息提交非常棒,接下來通過本文給大家介紹Ajax+FormData+javascript實現(xiàn)無刷新表單信息提交的相關(guān)資料,需要的朋友可以參考下
    2016-10-10
  • JS日期和時間選擇控件升級版(自寫)

    JS日期和時間選擇控件升級版(自寫)

    鑒于網(wǎng)上找到的幾個日期選擇程序有些問題,遂著手重寫一個程序,添加了時間選擇功能,截圖及源碼如下,有需要的朋友可以參考下
    2013-08-08
  • js為數(shù)字添加逗號并格式化數(shù)字的代碼

    js為數(shù)字添加逗號并格式化數(shù)字的代碼

    數(shù)字添加逗號的方法有很多,在本將為大家介紹下使用js來實現(xiàn),具體如下,感興趣的朋友可以參考下,希望對大家有所幫助
    2013-08-08
  • JS實現(xiàn)簡單的浮動碰撞效果示例

    JS實現(xiàn)簡單的浮動碰撞效果示例

    這篇文章主要介紹了JS實現(xiàn)簡單的浮動碰撞效果,類似于廣告懸浮圖片在屏幕上來回碰撞的效果,涉及javascript結(jié)合時間動態(tài)操作頁面元素屬性的相關(guān)技巧,需要的朋友可以參考下
    2017-12-12
  • JavaScript Sort 表格排序

    JavaScript Sort 表格排序

    JavaScript表格排序?qū)崿F(xiàn)代碼,需要的朋友可以參考下。
    2009-10-10
  • ElementUI table無縫循環(huán)滾動的示例代碼

    ElementUI table無縫循環(huán)滾動的示例代碼

    這篇文章主要介紹了ElementUI table無縫循環(huán)滾動的示例代碼,代碼簡單易懂,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-08-08
  • 用js獲取元素屬性的代碼

    用js獲取元素屬性的代碼

    js小技巧之訪問元素屬性
    2009-05-05

最新評論