console
function findeBelong(data, index) {
let array = [];
for (let i = data.length - 1; i >= 0; i--) {
if (data[i].belongto == index) {
const obj = {
id: data[i].id,
name: data[i].name,
desc: data[i].about,
children: []
}
array.push(obj);
data.splice(i, 1);
}
}
return array;
}
function sortTree(arr, all) {
let tree = (arr, all) => {
for (let i = 0; i < arr.length; i++) {
let item = findeBelong(all, arr[i].id);
for (let j = 0; j < item.length; j++) {
const obj = {
id: item[j].id,
name: item[j].name,
desc: item[j].desc,
children: []
}
arr[i].children.push(obj);
}
tree(arr[i].children, all)
}
}
tree(arr, all)
}
const menus = [
{id: 1, name: "1", about: "asdasd", belongto: 0},
{id: 2, name: "2", about: "asdasd", belongto: 0},
{id: 3, name: "3", about: "asdasd", belongto: 2},
{id: 4, name: "4", about: "asdasd", belongto: 2},
{id: 5, name: "5", about: "asdasd", belongto: 4},
{id: 6, name: "5", about: "asdasd", belongto: 1},
]
let fa = findeBelong(menus, '0');
sortTree(fa, menus)
console.log(fa)
document.getElementById("result").innerHTML = JSON.stringify(fa,"\t")
<div id="result"></div>