朋友問的問題,我試著寫了一下。用了兩層遞迴,感覺很麻煩。
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 二 另外一種解法是模擬現實生活中...