gpt4 book ai didi

javascript - 这个 while 循环条件如何工作?

转载 作者:行者123 更新时间:2023-12-01 02:34:54 25 4
gpt4 key购买 nike

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

我不明白为什么只有一个元素(数字)被插入数组。这个 while 循环是如何工作的? “过滤”到底发生在哪里?另外, .reverse 函数让我失望。这段代码如何知道如何从左到右,然后从右到左多次?

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

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

最佳答案

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

3 5 7 8 9 2
^ ^ ^ (i = 1, 3, 5)

将选定的值(上面突出显示的)插入 new_values 后,我们得到以下数组:

5 8 2

现在 values 被分配为该数组的相反值:

2 8 5
^ (i = 1)

在外部 while 循环的下一次迭代期间,只有一个元素被推送到 new_values 上,它是索引 1 处的值,即数字 8,这也是恰好是阵列的中心。因此,在第二次迭代结束时,values 数组只有一个元素:

8

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

关于javascript - 这个 while 循环条件如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48001053/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com