Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.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
Javascript 逻辑运算符&&;in-if语句_Javascript_Arrays - Fatal编程技术网

Javascript 逻辑运算符&&;in-if语句

Javascript 逻辑运算符&&;in-if语句,javascript,arrays,Javascript,Arrays,我正在迭代一个数组,并希望执行以下操作: for ( var i = 0; i < array.length && !(array[i][1] == 0 && array[i][2] == 'foo'); i++) { 。。。它起作用了。因此,当我试图说“IF TRUE AND!(条件1和条件2)”,但我不确定我做错了什么时,我一定是把语法搞乱了。我的错误在哪里?如果你把测试!(数组[i][1]==0&&array[i][2]

我正在迭代一个数组,并希望执行以下操作:

for (
    var i = 0; 
    i < array.length && !(array[i][1] == 0 && array[i][2] == 'foo'); 
    i++) 
{

。。。它起作用了。因此,当我试图说“IF TRUE AND!(条件1和条件2)”,但我不确定我做错了什么时,我一定是把语法搞乱了。我的错误在哪里?

如果你把测试
!(数组[i][1]==0&&array[i][2]=='foo')
在循环控制表达式中,然后当该操作失败时,循环停止。如果
i
为false,它不会跳过该迭代并继续下一个迭代。它只是停止了

如果希望它继续到下一个迭代,则需要将测试放在循环体中,并使用
continue

所以基本上我是说“如果我小于数组的长度,那么数组[I]1不是0,数组[I][2]是'foo'”然后做一些事情

在javascript中是:

if((i < array.length) && !(array[i][1] == 0) && (array[i][2] == 'foo'))
请注意,
后面括号的位置。带有更改的完整for循环为:

if(i < array.length && !(array[i][1] == 0 && array[i][2] == 'foo'))
for (var i = 0; (i < array.length) && !(array[i][1] == 0) && (array[i][2] == 'foo'); i++) {
for(vari=0;(i
几乎肯定与您的问题无关,但您会希望养成使用
===
!=
的习惯,而不是
=
!=
=
由于愚蠢的设计决策而做愚蠢的事情;
==
!=
做不那么愚蠢的事情。
if(i < array.length && !(array[i][1] == 0 && array[i][2] == 'foo'))
for (var i = 0; (i < array.length) && !(array[i][1] == 0) && (array[i][2] == 'foo'); i++) {