TODO
Array.prototype.reduce()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
| function deepFindFirstChild(
parent,
path,
) {
if (path && Array.isArray(path)) {
path.push(parent.id)
}
if (!parent?.children?.length) {
return path ? [parent, path] : parent
}
return deepFindFirstChild(parent.children[0], path)
}
var obj = {
id: 0,
children: [{
id: 1,
children: [{
id: 2,
children: [{
id: 3,
children: [{
id: 4
}]
}]
}]
}]
}
try {
const res = deepFindFirstChild(obj, [])
console.log(res);
} catch(e) {
console.log(e.message);
}
|
[{ id: 4 } (\, [0 (\, 1) (\, 2) (\, 3) (\, 4)])]