let arr = [{
name: "1",
children: [{
name: " 1 - 1",
},
{
name: " 1 - 2",
children: [{
name: "1 - 2 - 1",
}, ]
}
]
}, {
name: "2",
children: [{
name: "2 - 1",
},
{
name: "2 - 2",
children: [{
name: "2 - 2 - 1",
}, ]
}
]
}]
function test(arr, list = []) {
let children = [];
arr.forEach(a => {
list.push(a.name);
a.children && children.push(...a.children);
});
return children.length ? test(children, list) : list
}
console.log(test(arr))

原文:https://www.cnblogs.com/lieaqi/p/10612995.html