在遇到树形结构数据,js进行遍历时,return不会跳出整个函数。需要用到throw

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
check(list){
for (const item of list) {
if (item.name=='张三孙') {//这里可以校验其他情况
console.log(item.name);
//...一些操作
// 这里return并不会跳除整个check()函数,可以使用throw
throw true;
}
if (item.child) {
this.check(item.child);
}
}
}
//另一个组件,或者需要检测check()函数返回的其他地方
let arr = [
{
name:'张三',
child:[
{
name:'张三子',
child:[
{
name:'张三孙',
}
]
}
]
}
]
try {
this.check(arr);
} catch (stat) {
if (stat) { return; }
}