let errors = false;
// Check for errors in any single payload
for (let result of results) if (result.status === "error") {
errors = true;
errorMessage = result.message;
console.log(errors) // logs out "true"
} else {
errors = false;
}
console.log(errors) // logs out "false"
// If error exists, alert user
if (errors === true) {
console.log(errors);
alert('Error Requesting Monitor Data!\n'+errorMessage)
} else {
console.log(errors); // logs out "false"
}
来自Python / Scala的JavaScript新手。在上面的代码中,for循环范围之外的错误永远不会修改为true
。我不了解变量的范围和值的修改?
答案 0 :(得分:3)
你的循环在很大程度上是无关紧要的。
由于您在循环的errors = false
部分设置了else
,因此您实际上是在检查您测试的 last 是否为错误。
您完成循环并每次将结果翻转为true
或false
。它最终会有一个描述最后一件事的值。
如果您的目标是测试集合中的“一个或多个”是否有错误,那么您需要删除其他分支。
这样它就会以false
开头,如果有错误可能会转到true
,但永远不会被翻转。