<template> <div class="tree"> <pre>{{ filterTreeFirst }}</pre> </div> </template> <script> import treeData from "../../testData"; import enumerable from "linq"; export default { name: "Tree", data() { return { filterTreeFirst: [], filterTreeSecond: [] } }, created() { this.filterTreeFirst = enumerable.from(treeData).toArray() this.filterTreeFirst = enumerable.from(this.filterTreeFirst).where(item => item.Pid == undefined || item.Pid == '' || item.Pid == null).toArray() this.filterTreeFirst = enumerable.from(this.filterTreeFirst).select(item => ({ Id: item.Id, Name: item.Name, children: [] })).toArray() this.filterTreeFirst.forEach(para => { treeData.forEach(item => { if (item.Pid == para.Id) { let obj = { Pid:item.Pid, Id: item.Id, Name: item.Name, children: [], } para.children.push(obj) } }) }) this.filterTreeFirst.forEach(iii => { if (iii.children.length > 0) { iii.children.forEach(paras => { treeData.forEach(item => { if (paras.Id == item.Pid) { console.log(item) let obj = { Pid: item.Pid, Id: item.Id, Name: item.Name, // children: [] } paras.children.push(obj) } }) }) } }) }} </script> <style scoped> </style>