【发布时间】:2015-05-13 10:39:14
【问题描述】:
我有以下 JavaScript 函数,它将遍历一个由 3 个对象组成的数组,每次都满足 if 语句的条件并返回 true。为什么它在第一次达到 true 后没有返回,而是继续循环遍历数组?这当然会导致函数返回 false,因为它在循环之后命中。
我只是通过创建一个不同的变量并在最后返回它来解决这个问题,但我只是好奇它为什么会这样做?
this.CheckRoles = function (authLevel) {
angular.forEach(currentUser.roles, function (role) {
if(role >= authLevel)
{
//The user has the required permissions
return true;
}
});
return false;
}
【问题讨论】:
-
This answer 应该可以解决您的问题。
-
您可以在 forEach 方法中设置一个标志而不是 return 并在循环外(之后)检查标志并根据您的要求返回 true/false。
标签: javascript arrays angularjs