【发布时间】:2019-10-01 11:14:39
【问题描述】:
我有一个使用 forEach 和 for in 循环的以下代码。实际上,当我使用 forEach 获得正确的结果以及尝试在循环中使用 for 获得错误的结果时。那么 for in 循环代码有什么问题。
var currentStateValue = { dashboard: false, brandplay: false };
ForEach 代码 -
angular.forEach(currentStateValue, function(value, key) {
authService.isAuthorizedRole(key).then(function(permissionView) {
if (permissionView == true) {
currentStateValue[key] = true;
console.log(currentStateValue);
}
});
});
显示正确的结果
Object { dashboard: true, brandplay: false }
但是当我在循环中使用for时
for (var key in currentStateValue){
authService.isAuthorizedRole(key).then(function(permissionView) {
if (permissionView == true) {
currentStateValue[key] = true;
console.log(currentStateValue);
}
});
}
显示错误的结果
Object { dashboard: false, brandplay: true }
【问题讨论】:
-
for...in 循环总是去最后一个对象并改变值
标签: javascript angular foreach for-in-loop