多个条件不工作的 for 循环 (JS)
for loop with multiple conditions not working (JS)
我试图让这个循环工作,以便在数组中获得小于 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);
但我想遵循第一个脚本中显示的路径(如果可能)...
您可以将计算移至条件部分。
var multiploCincoArray = [];
for (var i = 1, r; r = i * 5, r < 1000; i++) {
multiploCincoArray.push(r);
}
console.log(multiploCincoArray);
for(i = 1, r = i * 5; r < 1000; i++){
等同于:
i = 1, r = i * 5
while(r < 1000) i++;
所以实际上你只设置 r
一次(到 5),然后你增加 i
只要 r
小于 1000,但是 r
不会'更改循环是无限的并且会导致浏览器崩溃。
你可以这样做:
for(let i = 5; i < 1000; i += 5)
我觉得你的方法不对。
首先从单个变量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);
试试看:
var multiploCincoArray = [];
for(i = 5; i <= 1000; i = i + 5) {
multiploCincoArray.push(i);
}
console.log(multiploCincoArray);
在正确的轨道上,但条件不对。将 for(i = 1, r = i * 5; r < 1000; i++)
更改为 for(i = 1, r=5; r < 1000; r=i*5,i++)
应该使用 let i
和 let r
作为范围,但为了清楚起见,我将其省略。
我试图让这个循环工作,以便在数组中获得小于 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);
但我想遵循第一个脚本中显示的路径(如果可能)...
您可以将计算移至条件部分。
var multiploCincoArray = [];
for (var i = 1, r; r = i * 5, r < 1000; i++) {
multiploCincoArray.push(r);
}
console.log(multiploCincoArray);
for(i = 1, r = i * 5; r < 1000; i++){
等同于:
i = 1, r = i * 5
while(r < 1000) i++;
所以实际上你只设置 r
一次(到 5),然后你增加 i
只要 r
小于 1000,但是 r
不会'更改循环是无限的并且会导致浏览器崩溃。
你可以这样做:
for(let i = 5; i < 1000; i += 5)
我觉得你的方法不对。
首先从单个变量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);
试试看:
var multiploCincoArray = [];
for(i = 5; i <= 1000; i = i + 5) {
multiploCincoArray.push(i);
}
console.log(multiploCincoArray);
在正确的轨道上,但条件不对。将 for(i = 1, r = i * 5; r < 1000; i++)
更改为 for(i = 1, r=5; r < 1000; r=i*5,i++)
应该使用 let i
和 let r
作为范围,但为了清楚起见,我将其省略。