我正在尝试使此循环起作用,以获取数组中小于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);
但是我想遵循第一个脚本中显示的路径(如果可能)...
答案 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 i
和let r
用于范围,但为清楚起见,我将其省略。