具有多个条件的for循环不起作用(JS)

时间:2019-02-13 20:32:30

标签: javascript for-loop multiple-conditions

我正在尝试使此循环起作用,以获取数组中小于1000的5的倍数(是的,刚刚开始使用euler),但它一直使我的控制台崩溃:

var multiploCincoArray = []; 

for(i = 1, r = i * 5; r < 1000; i++) {
    multiploCincoArray.push(r);
}
console.log(multiploCincoArray);

我知道停止条件出了点问题,但我似乎找不到它。

我知道我也可以这样做:

var multiploCincoArray = []; 

for(i = 1; i <= 199 ; i++) { 
    multiploCincoArray.push(5 * i);
}
console.log(multiploCincoArray);

但是我想遵循第一个脚本中显示的路径(如果可能)...

5 个答案:

答案 0 :(得分:2)

您可以将计算移至条件部分。

var multiploCincoArray = [];
for (var i = 1, r; r = i * 5, r < 1000; i++) {
    multiploCincoArray.push(r);
}

console.log(multiploCincoArray);

答案 1 :(得分:2)

尝试:

var multiploCincoArray = []; 

for(i = 5; i <= 1000; i = i + 5) { 

    multiploCincoArray.push(i);
}
console.log(multiploCincoArray);

答案 2 :(得分:1)

 for(i = 1, r = i * 5; r < 1000; i++){

与:

 i = 1, r = i * 5

 while(r < 1000) i++;

实际上,您只设置了一次r(至5),然后只要i小于1000,就增加r,但是r却没有更改循环是无限的,并会导致浏览器崩溃。

您可能会这样做:

 for(let i = 5; i < 1000; i += 5)

答案 3 :(得分:1)

您的方法似乎不正确。

首先从单个变量i开始,然后迭代到1000。

for (var i=1; i<1000; i++)

通过i%5检查i是否为5的倍数,然后将其压入数组。

var array = [];

for (var i=1; i<1000; i++) {
  if (i%5 === 0) {
    array.push(i);
  }
}

console.log(array);

答案 4 :(得分:0)

在正确的轨道上,但状况在错误的位置。将for(i = 1, r = i * 5; r < 1000; i++)更改为for(i = 1, r=5; r < 1000; r=i*5,i++)

应将let ilet r用于范围,但为清楚起见,我将其省略。