我也来一个递归的 function filter (tree, str) { let res=[] let flag=false for(let key of tree){ if(key.name===str){ flag=true res.push(key) }else{ if(key.children){ let obj=filter(key.children,str) flag=obj[1] if(flag){ res.push(key) } } } } return [res,flag] }