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

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

Dies druckt leeres Array, aber warum? Shoudnt es drucken [2, 5]? Ich kann nicht finden, was in meinem Code falsch istFor-Schleife liefert kein korrektes Ergebnis

Antwort

2

dies funktioniert:

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

so, im Grunde, was Sie falsch verwendet tun wurden .push[i] . Es ist ein gemeinsamer Syntaxfehler. Sie müssen nur .push(i)

verwenden
1

plus.push(i); statt mit plus.push[i];

0

Funktionen sind Objekte in JavaScript. plus.push[i]; sucht eine Eigenschaft auf push, das Funktionsobjekt, mit i 's Wert als Name (genau wie Indizierung in ein Array); und wirft dann den Wert weg, den er erhalten hat (vermutlich undefined, da die Funktion wahrscheinlich keine Eigenschaften wie "2", "4" usw. hat). Aus diesem Grund erhalten Sie keinen Syntaxfehler wie in vielen anderen Sprachen.

Um Anrufpush, verwenden (), nicht []:

plus.push(i); 
Verwandte Themen