- 如果循环有多层嵌套,则break,return只能跳出一层。
- 使用
try {}catch () { }
抛出需要的节点可行。
例如:
getNode() {
// 源数据
const data = [
{
id:'1',
children :[
{ id:'1.1'},
{ id:'1.2'}
]
},
{
id:'2',
},
];
// 要找的节点
const keyWord = '1.1';
// 找到的节点
let res_name = '';
try {
const findName = (data)=> {
for(let i in data) {
const item = data[i]
console.log('进入循环----', item)
if(item.id === keyWord) {
throw item.id; //找到节点抛出
}
if(item.children && item.children.length ) { //子节点进行递归
findName(item.children);
}
}
}
findName(data) // 执行逻辑代码
}catch (name) {
res_name = name; //找到的节点
}
return res_name; //返回节点
}