const tree = { id: 1, children: [ { id: 2, children: [ { id: 3, children: [ { id: 4, children: [] }, { id: 5, children: [] }, ], }, ], }, { id: 6, children: [ { id: 7, children: [ { id: 8, children: [] }, { id: 9, children: [] }, ], }, ], }, ], }; const func = (root) => { if (root.children.length === 0) { return []; } const res = []; const dfs = (node) => { if (node.children.length === 0) { res.push(node.id); return; } node.children.forEach(dfs); }; dfs(root); return res; }; console.log(func(tree));