Beginning JavaScript Lerner hier ...Summe der Inhalt eines JavaScript-Array
Ich arbeite durch Adrian Neumann Simple Programming Problems und meine Frage ist, Nummer 5 in den elementaren Übungen.
Schreiben Sie ein Programm, das den Benutzer nach einer Zahl n fragt und die Summe der Zahlen 1 bis n ... ausgibt, so dass nur Vielfache von 3 und 5 berücksichtigt werden.
Hier ist mein Code, wie es derzeit steht ...
var myArray = [];
var mySum = 0;
var userNum = prompt("What is your number? "); {
for (var i = userNum; i > 0; i--) {
if (i % 5 === 0 || i % 3 === 0) {
mySum += myArray.push(i);
}
}
}
console.log(mySum);
Dies führt zu dem Ergebnis 28
, die nicht korrekt ist. Wenn ich die mySum
Anweisung auskommentiere und das Array für die Eingabe von 17
drucke, bekomme ich [15, 12, 10, 9, 6, 3]
, die richtig aussieht.
Ich wäre an Tipps interessiert, warum die mySum
-Anweisung nicht das erwartete Ergebnis liefert. Ich wäre auch an allen Tipps interessiert, um den Code effizienter zu machen. Danke vielmals!
bearbeiten
Für alle Interessierten, hier ist der Code, den ich für die beste zu sein ließ sich auf für meine Zwecke und aktuelle Niveau:
var mySum = 0;
var userNum = prompt("What is your number? ");
for (var i = userNum; i > 0; i--) {
if (i % 5 === 0 || i % 3 === 0) {
mySum += +i; // type coercion with unary operator
}
}
console.log(mySum);
Vielen Dank an alle!
Warum Array? 'mySum + = i;' oder wenn du willst: 'mySum + = i; myArray.push (i); 'oder' myArray.push (i); 'und anschließend das Array reduzieren:' sum = myArray.reduce (Funktion (a, b) { Rückgabe a + b; }); ' – mplungjan
Array.prototype.push gibt die neue Länge des Arrays und nicht den von Ihnen angegebenen Wert zurück, weshalb Ihre Summe nicht korrekt ist. – Lee
Beachten Sie, dass die äußeren '{...}' nicht notwendig sind. –