JS樹形結(jié)構根據(jù)id獲取父級節(jié)點元素的示例代碼
更新時間:2023年05月13日 10:05:50 作者:戰(zhàn)立標
這篇文章主要介紹了JS樹形結(jié)構根據(jù)id獲取父級節(jié)點元素,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
封裝函數(shù)
// 傳入 id、樹形結(jié)構數(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) //保存當前節(jié)點id if (id== item.id) { //判斷當前id是否是默認id return arr //是則退出循環(huán)、返回數(shù)據(jù) } else { //否則進入下面判斷,判斷當前節(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)) { //如果當前數(shù)據(jù)中已包含默認節(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))
到此這篇關于JS樹形結(jié)構根據(jù)id獲取父級節(jié)點元素的文章就介紹到這了,更多相關js獲取父級節(jié)點元素內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
JS中將blob返回值轉(zhuǎn)換為json格式的問題小結(jié)
這篇文章主要介紹了JS中如何將blob返回值轉(zhuǎn)換為json格式,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧2023-12-12js 數(shù)組當前行添加數(shù)據(jù)方法詳解
這篇文章主要介紹了js 數(shù)組當前行添加數(shù)據(jù)方法詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-07-07Ajax+FormData+javascript實現(xiàn)無刷新表單信息提交
在前端開發(fā)中ajax,formdata和js實現(xiàn)無刷新表單信息提交非常棒,接下來通過本文給大家介紹Ajax+FormData+javascript實現(xiàn)無刷新表單信息提交的相關資料,需要的朋友可以參考下2016-10-10ElementUI table無縫循環(huán)滾動的示例代碼
這篇文章主要介紹了ElementUI table無縫循環(huán)滾動的示例代碼,代碼簡單易懂,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-08-08