2017-02-18 90 views
-1
var integer = 10; 
var plus = []; 

for(var i = 2; i < integer; i++) { 
    if(integer % i === 0){ 
     plus.push[i]; 
    } 
    } 
console.log(plus) 

這會打印空數組,但爲什麼? shoudnt它打印[2,5]?我找不到什麼是錯在我的代碼For loop沒有給出正確的結果

回答

2

這個工程:

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

所以,基本上是你做錯了使用.push[i] 。它是一個常見的語法錯誤。你只需要使用.push(i)

1

plus.push(i);,而不是使用plus.push[i];

0

函數是JavaScript對象。 plus.push[i];在函數對象push上查找屬性,使用i的值作爲名稱(完全類似於索引到數組中);然後丟棄它得到的任何值(大概undefined,因爲函數可能沒有名爲"2","4"等的屬性)。這就是爲什麼你沒有得到語法錯誤,就像你在其他許多語言中一樣。

通話push,使用(),不[]

plus.push(i);