<script>
let list = [
{
id: '1',
title: '节点1',
parentId: '',
},
{
id: '1-1',
title: '节点1-1',
parentId: '1'
},
{
id: '1-2',
title: '节点1-2',
parentId: '1'
},
{
id: '2',
title: '节点2',
parentId: ''
},
{
id: '2-1',
title: '节点2-1',
parentId: '2'
}
]
// 列表转为数据结构数据
function listTransformTree(list) {
// 我认为newList在外循环,treeData在内循环。我的理解就是,在newList里拿出一个元素,treeData需要循环全部
const newList = JSON.parse(JSON.stringify(list))
const treeData = []
function digui(item, arr) {
if (!item.parentId) {
arr.push(item)
return
}
arr.forEach(ele => {
if (ele.id === item.parentId) {
if (!ele.children) {
ele.children = []
}
ele.children.push(item)
} else {
ele.children && digui(item, ele.children)
}
})
}
newList.forEach(item => {
// 这个里面递归
digui(item, treeData)
})
return treeData
}
console.log(listTransformTree(list))
</script>
将list数组转为父子结构数据(版本2)
最新推荐文章于 2023-05-24 23:41:36 发布