在制作项目中总结出的方法(递归),适用于一些树形菜单或者是管理系统的树形结构的列表,增大了用户体验感,省时省力,也非常简单
代码如下:
//数组转换
const transListDataToTreeData = (list, i) => {
const arr = [];
// 1.遍历
list.forEach((item) => {
// 2.首次传入空字符串 判断list的pid是否为空 如果为空就是一级节点
if (item.pid === i) {
// 找到之后就要去找item下面有没有子节点 以 item.id 作为 父 id, 接着往下找
const children = transListDataToTreeData(list, item.id);
if (children.length > 0) {
// 如果children的长度大于0,说明找到了子节点
item.children = children;
}
// 将item项, 追加到arr数组中
arr.push(item);//向数组中push数据
}
});
return arr;
}