【发布时间】:2018-11-04 19:18:42
【问题描述】:
我正在处理一个在变量与数组中的值匹配后必须切换布尔值的赋值。该变量必须使用for 循环与数组中的值匹配。但是,我可以在引入 for 循环之前切换布尔值。但是在我引入for 循环之后,布尔值被固定为false 的原始值。
有人可以解释为什么会这样吗?
我还可以请求吗,我不是在寻找“如何做到这一点”,而是在寻找它为什么会发生的解释 - 如果您不向我推荐实现这一目标的“另一种更好的方法”,我将不胜感激- 我只是想了解这个概念,因为我是初学者。
我在for 循环(正确更改布尔值)之前使用的代码是:
var c = 3;
var w = [];
var m = false;
w.push(3,4);
if (c === w[0]){
m = true;
}
alert (m);
但是,在我添加 for 循环计数器并将 if 条件从 c===w[0] 更改为 c===w[i] 后,我只能使用以下代码收到“错误”警报:
var c = 3;
var w = [];
var m = false;
w.push(3,4);
for (i=0; i<2 && c!==w[i]; i++){
if (c === w[i]){
m = true;
}
}
alert (m);
【问题讨论】:
-
发生这种情况是因为循环永远不会运行,
i < 2 && c !== w[i]在循环的开头是false(参见:c = 3、w = [3, 4]-->w[0] === 3和 @987654337 @)。
标签: javascript for-loop boolean