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

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

これは空の配列を表示しますが、なぜですか?それを印刷する[2、5]?私の代わりに関数はJavaScriptでのオブジェクトですplus.push[i];ループが適切な結果を得られない

答えて

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];は、iの値を名前として使用して(配列へのインデックス付けとまったく同じ)pushのプロパティオブジェクトを検索します。それから何らかの値を捨てます(恐らくundefined、おそらく関数は"2""4"という名前のプロパティを持たないため)。そのため、他の多くの言語と同様に、構文エラーが発生していません。

への呼び出しpush()を使用し、ない[]

plus.push(i); 
0

を使用しての

関連する問題