JSFiddle - React, Tailwind, and code Playground
by kyleshen
JavaScript
var Arrays = [
{id: 2, text: "一般土地租金", pareid: null, seq: 0,items:null},
{id: 8, text: "一般賠償", pareid: 2, seq: 0,items:null},
{id: 3, text: "一般房屋保險費", pareid: null, seq: 1,items:null},
{id: 10, text: "土地稅", pareid: 3, seq: 0,items:null},
{id: 13, text: "工員工資", pareid: 10, seq: 0,items:null},
{id: 15, text: "工程及管理諮詢服務費", pareid: 13, seq: 0,items:null},
{id: 12, text: "工作場所電費", pareid: 3, seq: 1,items:null},
{id: 19, text: "分擔", pareid: 12, seq: 0,items:null},
{id: 5, text: "一般房屋租金", pareid: null, seq: 2,items:null}
];
var map = {}, node, roots = [];
for (var i = 0; i < Arrays.length; i += 1) {
node = Arrays[i];
node.items = [];
map[node.id] = i; // use map to look-up the parents
if (node.pareid != null) { //如果為根結點,則push到items陣列
Arrays[map[node.pareid]].items.push(node);
} else {
roots.push(node);
}
}
console.log(JSON.stringify(roots))