把有層級的一維陣列改為樹形結構

2022-09-12 05:03:14 字數 1693 閱讀 9928

朋友問的問題,我試著寫了一下。用了兩層遞迴,感覺很麻煩。

doctype html

>

<

html

lang

="en"

>

<

head

>

<

meta

charset

="utf-8"

>

<

title

>document

title

>

head

>

<

body

>

body

>

html

>

<

script

type

="text/j**ascript"

>

let tree =[,,

,,,,

,]let newarr=;

for(let i=0

;i<

tree.length;i++)

function

maketree());}}

else

); }

}if(tree.length)

}function

compare(t,narr)

if(narr[j].children.length)

}return

false;}

this

.maketree();

console.log(newarr);

script

>

朋友的朋友也拿去實現了一下,我瞬間感覺自己弱爆了。。。

doctype html

>

<

html

lang

="en"

>

<

head

>

<

meta

charset

="utf-8"

>

<

title

>document

title

>

head

>

<

body

>

body

>

html

>

<

script

type

="text/j**ascript"

>

let arr =[,,

,,,,

,,

]var

data

=[...arr];

vartree

=data.filter((father)

=>

);if

(brancharr.length

>

0) father.children

=brancharr;

return

!father._hasparent;

});tree

=tree.filter((item)

=>

)script

>

兩層filter操作了同乙個data的引用,非常巧妙的構思。

樹形結構的資料與一維陣列資料的相互轉換

在我們做專案時,我們有時需要樹形結構的資料進行資料的樹形層級展示,或者需要把返回的資料結構資料進行拆解成單層陣列形式。下面我們就來總結下這兩種方法。陣列轉樹形結構 var data 陣列轉樹形結構資料 原理即為通過設定id為key值,再通過pid去找這個key是否一樣,一樣則為這資料的子級資料 fu...

樹形結構的資料與一維陣列資料的相互轉換

陣列轉樹形結構 var data 陣列轉樹形結構資料 原理即為通過設定id為key值,再通過pid去找這個key是否一樣,一樣則為這資料的子級資料 function arraytojson treearray for var i 0,l treearray.length i console.log ...

php 把乙個陣列分成有n個元素的二維陣列的演算法

一 第一種解法 把乙個陣列分成幾個陣列 arr 是陣列 num 是陣列的個數 function partition arr,num return newarray arr array 1,3,4,5,6,7,8,9,2 print r partition arr,3 二 另外一種解法是模擬現實生活中...