Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/454.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 while循环条件是如何工作的?_Javascript_For Loop_While Loop - Fatal编程技术网

Javascript while循环条件是如何工作的?

Javascript while循环条件是如何工作的?,javascript,for-loop,while-loop,Javascript,For Loop,While Loop,此函数在删除所有其他数字后返回单个数字。例如,在第一次运行时,从左到右删除-3、7和9。然后循环从右向左进行下一次迭代,直到最后只剩下8次 我不明白为什么只有一个元素(数字)被推送到数组中。这个while循环如何工作?“过滤”在哪里发生?另外,反向功能也让我感到厌烦。这段代码如何知道如何从左向右,然后从右向左多次 所以,是的,任何帮助都将不胜感激;-)多谢各位 function everyOtherfilter(values){ while (values.length > 1){

此函数在删除所有其他数字后返回单个数字。例如,在第一次运行时,从左到右删除-3、7和9。然后循环从右向左进行下一次迭代,直到最后只剩下8次

我不明白为什么只有一个元素(数字)被推送到数组中。这个while循环如何工作?“过滤”在哪里发生?另外,反向功能也让我感到厌烦。这段代码如何知道如何从左向右,然后从右向左多次

所以,是的,任何帮助都将不胜感激;-)多谢各位

function everyOtherfilter(values){
while (values.length > 1){

    new_values = [];
    for (var i=1; i < values.length; i = i+2){
        new_values.push(values[i]);

    }
    values = new_values.reverse();
}

return values[0]

}
(everyOtherFilter([3, 5, 7, 8, 9, 2])) = 8
function everyOtherfilter(值){
while(value.length>1){
新的_值=[];
对于(变量i=1;i
我不知道此函数的实际用途,但我们可以使用您提供的示例数据轻松运行您的函数:

3 5 7 8 9 2
  ^   ^   ^    (i = 1, 3, 5)
将选定的值(上面突出显示)推入
新的\u值后,我们剩下以下数组:

5 8 2
现在,
被分配到与此数组相反的位置:

2 8 5
  ^            (i = 1)
在外部
while
循环的下一次迭代中,只有一个元素被推到
新的\u值上,这是索引1的值,数字8,也恰好是数组的中心。因此在第二次迭代结束时,
values
数组只有一个元素:

8

while
循环不会再次迭代,因为此时长度仅为1。

我不知道此函数的实际用途,但我们可以使用您提供的示例数据轻松运行您的函数:

3 5 7 8 9 2
  ^   ^   ^    (i = 1, 3, 5)
do{/*statements*/}while(/*condition*/)
将选定的值(上面突出显示)推入
新的\u值后,我们剩下以下数组:

5 8 2
现在,
被分配到与此数组相反的位置:

2 8 5
  ^            (i = 1)
在外部
while
循环的下一次迭代中,只有一个元素被推到
新的\u值上,这是索引1的值,数字8,也恰好是数组的中心。因此在第二次迭代结束时,
values
数组只有一个元素:

8
while
循环不会再次迭代,因为此时长度仅为1

do{/*statements*/}while(/*condition*/)
do while语句为先执行该语句,然后检查您的条件(如果为真)它将再次执行语句(如果为假)终止循环

while(/*conditions*/){/*statements*/}
while循环首先检查条件,如果为true,则执行语句。执行该语句后,它将再次检查该条件如果为假终止循环

   for(/*initialize some index*/;/*condition*/;/*index changes*/){/*statements*/}
for循环初始化索引然后检查条件如果为真则执行语句然后增加索引如果为假则检查条件终止循环

   for(/*initialize some index*/;/*condition*/;/*index changes*/){/*statements*/}
do while语句为先执行该语句,然后检查您的条件(如果为真)它将再次执行语句(如果为假)
终止循环

while(/*conditions*/){/*statements*/}
while循环首先检查条件,如果为true,则执行语句。执行该语句后,它将再次检查该条件如果为假终止循环

   for(/*initialize some index*/;/*condition*/;/*index changes*/){/*statements*/}

for循环初始化索引然后检查条件如果为真则执行语句然后增加索引如果为假则检查条件终止循环

为什么会这样?蒂姆把我摆平了。谢谢你;-)为什么如此愤怒?蒂姆把我摆平了。谢谢你;-)
   for(/*initialize some index*/;/*condition*/;/*index changes*/){/*statements*/}