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