2017-07-19 92 views

回答

4

因为它终止条件评估为false的时刻。

它会运行一次加0再检查条件并终止自0%2 === 0

这是一个修复:

var arr = []; 
for(var i = 0; i < 10; i += 2) { 
    arr.push(i); 
} 

console.log(arr); 
+0

我完全忽略了这个循环会在条件为假之后断开......谢谢 –

1

这是因为当i等于1(i<10) && (i%2 === 0)返回false并且for循环停止。

只需在for循环中设置i%2 === 0检查即可使其工作。

var arr = []; 
 
for(var i = 0; i < 10; i++) { 
 
    if (i % 2 === 0) { 
 
    arr.push(i); 
 
    } 
 
} 
 

 
console.log(arr);

+0

或者只是'i + = 2' –

+0

我更喜欢在'for'循环之外设置逻辑:) – Erazihel

+0

为什么?...是双倍迭代vs'i + = 2' – charlietfl

0

您的循环有两个条件下,当i等于1,循环中断

0

您需要通过2

var arr = []; 
 
for (var i = 0; i < 10; i = i + 2) { 
 
    arr.push(i); 
 
} 
 
console.log(arr)
递增 i