vue前端列表list转树tree及树转列表list
vue
·
在网上找了很多, 都不太适用,于是自己寻求大佬帮助,记录一下
一、list转tree
let arr = []
function tree_init(data, arr) {
data.forEach(ele => {
if (!ele.pid) {
arr.push({
id: ele.id,
name: ele.name,
children: []
})
} else {
tree(ele, arr)
}
})
console.log(arr)
}
function tree(data, arr) {
arr.forEach(ele => {
if (ele.id === data.pid) {
ele.children.push({
id: data.id,
name: data.name,
children: []
})
} else {
tree(data, ele.children)
}
})
}
二、tree转list
这里this.list是外部写好的
this.list = []
这里设置tree[i] = null是为了用element的级联选择器
buildList(tree) {
for (let i in tree) {
this.list.push(tree[i])
if (tree[i].children.length !== 0) {
this.buildList(tree[i].children)
} else {
tree[i].children = null
}
}
}
更多推荐
已为社区贡献1条内容
所有评论(0)