// 非常nice 的遞歸方法:
for (let i = 0, len = menuList.length; i < len; i++) {
console.log(Number(menuList[i].id), Number(obj.id))
if (Number(menuList[i].id) === Number(obj.id)) {
console.log(menuList[i], ‘--------------------9089899878979’)
return menuList[i];
}
if (menuList[i].children) {
this.findTreeOfObj(menuList[i].children, obj);
}
}
結果:走了打印的結果,卻無法retrun
改寫成:
let result = {};
menuList.forEach(item => {
const loop = data => {
if (Number(data.id) === Number(obj.id)) {
result = data;
return result;
}
let child = data.children;
if (child) {
for (let i = 0; i < child.length; i++) {
loop(child[i])
}
}
}
loop(item);
})
return result;
結果:成功,