【发布时间】:2018-12-11 17:19:17
【问题描述】:
我有一个存储部门层次结构的对象。每个部门也可能有子部门。我正在尝试循环检查所有部门以及子(子)部门属性是Open。
但是,每当我点击递归调用时,它只会迭代一次并直接跳转到return true,即使仍有一些项目尚未在循环中检查。
validateDepartment(departmentHierarchy: any) {
for (let dept of departmentHierarchy.children) {
if (dept!= undefined && dept!= null) {
if (dept.instance.status == "Open")
{
continue
}
else
{
if (dept.children != undefined && dept.children != null) {
this.validateDepartment(dept);
}
else {
return false
}
}
}
}
return true
}
【问题讨论】:
-
能否提供
departmentHierarchy的结构,departmentHierarchy.department和departmentHierarchy一样吗?如果不是,那可能是导致问题的原因。 -
@GetOffMyLawn,抱歉,在阅读您的评论后代码中出现了拼写错误。我已经修好了。你能再检查一下吗?
-
看起来您只是在递归调用之前忘记了
return,但是...在其中“执行”任何操作的实际代码在哪里?通常,您希望返回某种结果,告诉您在树中的哪一件事以及验证失败(如果有的话)。
标签: javascript angularjs angular typescript