Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/415.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
添加FOR循环JavaScript后布尔值不起作用_Javascript_For Loop_Boolean - Fatal编程技术网

添加FOR循环JavaScript后布尔值不起作用

添加FOR循环JavaScript后布尔值不起作用,javascript,for-loop,boolean,Javascript,For Loop,Boolean,我正在研究一个赋值,在一个变量与数组中的值匹配后,布尔值必须切换。必须使用for循环将变量与数组中的值匹配。但是,在引入for循环之前,我可以切换布尔值。但是,在我引入for循环之后,布尔值被固定在其原始值false上 有人能解释为什么会这样吗 我也可以要求,我不是在寻找“如何做到这一点”,而是要解释为什么会发生这种情况-因此,如果你不向我推荐实现这一点的“另一种更好的方法”,我将不胜感激-我只是想了解这个概念,因为我是一个初学者 我在for循环(正确更改布尔值)之前使用的代码是: 但是,在我为

我正在研究一个赋值,在一个变量与数组中的值匹配后,布尔值必须切换。必须使用
for
循环将变量与数组中的值匹配。但是,在引入
for
循环之前,我可以切换布尔值。但是,在我引入
for
循环之后,布尔值被固定在其原始值
false

有人能解释为什么会这样吗

我也可以要求,我不是在寻找“如何做到这一点”,而是要解释为什么会发生这种情况-因此,如果你不向我推荐实现这一点的“另一种更好的方法”,我将不胜感激-我只是想了解这个概念,因为我是一个初学者

我在
for
循环(正确更改布尔值)之前使用的代码是:

但是,在我为循环计数器添加
,并将
if
条件从
c===w[0]
更改为
c===w[I]
后,我仅使用以下代码获得“false”警报:

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);
var c=3;
var w=[];
var m=假;
w、 推(3,4);

对于(i=0;ifor
条件在第一次迭代之前也会被检查,因此不会触发
if
。检查如下代码:

var c=3;
var w=[];
w.push(3,4);
var m=false;
for (var i=0;i<2 && c!==w[i];i++){
    console.log('In loop')
    if (c===w[i]){
        m=true;
    }
}
var c=3;
var w=[];
w、 推(3,4);
var m=假;

对于(var i=0;i在第一次迭代之前,也会检查
for
的条件,因此不会触发
if
。检查如下代码:

var c=3;
var w=[];
w.push(3,4);
var m=false;
for (var i=0;i<2 && c!==w[i];i++){
    console.log('In loop')
    if (c===w[i]){
        m=true;
    }
}
var c=3;
var w=[];
w、 推(3,4);
var m=假;

对于(var i=0;i而不是使用for循环,如果您只希望布尔变量必须在满足一个条件的情况下打开,则可以使用some()方法。使用此方法,循环将不会遍历所有对象,并在满足条件后停止。示例如下所示:-

var arr = [3,4,5];
var m = 4;
var bool = false;

array.some(function(item) {
if (m === item){
bool = true;
}
});
alert(bool);

因此,一旦从数组中获取匹配对象,这基本上会使您发出警报true。

如果只希望布尔变量只满足一个条件,则可以使用一些()方法。使用此方法,循环将不会遍历所有对象,并在满足条件后停止。示例如下所示:-

var arr = [3,4,5];
var m = 4;
var bool = false;

array.some(function(item) {
if (m === item){
bool = true;
}
});
alert(bool);

因此,一旦从数组中获得匹配对象,这基本上会给您一个警报true。

这是因为循环永远不会运行,
i<2&&c!==w[i]
在循环开始时是
false
(请参见:
c=3
w=[3,4]
w[0]==3
c==3
)。这是因为循环永远不会运行,
i<2&&c!==w[i]
在循环开始时是
false
(请参见:
c=3
w=[3,4]
-->
w[0]==3
c==3
)。