先准备一个数组
我这里tree状数组的子属性是放在children属性里面的
let arr = [
{
id: 1,
parentId: 0,
name: 'Saber',
children:[
{
id: 4,
parentId: 1,
name: '阿尔托莉雅'
},
{
id: 5,
parentId: 1,
name: '尼禄'
}
]
},
{
id: 2,
parentId: 0,
name: 'Lancer',
children:[
{
id: 6,
parentId: 2,
name: '库丘林'
}
]
},
{
id: 3,
parentId: 0,
name: 'Archer',
children:[
{
id: 7,
parentId: 3,
name: '红A',
},
{
id: 8,
parentId: 3,
name: '金闪闪'
}
]
}
]
转换的方式
// 传入两数组
// arr是tree数据
// resArr这个是用来接受转化后的list数据
function treeToList(arr, resArr) {
// 遍历循环arr数组中的数据
arr.forEach(v => {
// 写入空的数值
resArr.push(v);
// 判断是否有children属性
// 有children属性的话再次调用写入
if (v.children) {
treeToList(v.children, resArr)
}
});
}
let list = []
treeToList(arr , list)
console.log(list);
打印出来的结果