订阅模式


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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
let tree = {
val: '计算机学院',
children: [{
val: '软件工程',
children: [{
val: '一班',
children: []
},
{
val: '二班',
children: []
}
]
},
{
val: '计算机科学与技术',
children: [{
val: '计算机一班',
children: []
}]
}
]
}
//
function fn(obj,target,result){
result.push(obj.val);
if(obj.val==target)return result;
else{
//if(!obj.children.length)return result;
for (let i = 0; i < obj.children.length; i++) {
let arr=fn(obj.children[i],target,result.slice());
if(arr[arr.length-1]==target) return arr;
}
return result.slice();
}
}
console.log(fn(tree,"计算机一班",[]));

// function search(node, target) {
// let result = []
// let searchTarget = function(node, target, result) {
// result.push(node.val)
// if (node.val === target) {
// return result
// } else {
// for (let i = 0; i < node.children.length; i++) {
// let arr = searchTarget(node.children[i], target, result.slice())
// if (arr[arr.length - 1] === target) {
// return arr
// }
// }
// return result.slice()
// }
// }
// return searchTarget(node, target, result)
// }
// console.log(search(tree, '计算机一班'))

Author: pkq
Reprint policy: All articles in this blog are used except for special statements CC BY 4.0 reprint policy. If reproduced, please indicate source pkq !
  TOC