es so verwenden,
Array-Indizes von 0 beginnen sollte, deshalb habe ich eine andere Variable j = 0
var numbers = [];
var sum = 0;
for (var i = 0, j = 0; i <= 100; i = i + 3, ++j) {
numbers[j] = i;
}
eingeführt haben aktualisieren
Erste Problem: In Ihrem Code, dh. Code unten von Ihnen,
for (var i = 0; i <= 100; i = i + 3) {
numbers[i - 1] = i;
}
In der ersten Iteration
i = 0;
numbers[0-1] = i // i.e numbers[-1] = 0;
und in der zweiten Schleife, beginnen Sie den Index von 0
for (var index = 0; index < 100; index++) {
Zweite Ausgabe:
Auch wenn Sie keinen sequentiellen Zähler zum Ausfüllen verwenden Das Array endet mit undefined
Werten für diejenigen, die Sie nicht gefüllt haben.
Wenn Sie bemerken, wird der Ausgang nach der Schleife, sagt es numbers.length = 99
was falsch ist es nicht, dass viele Elemente darin haben wird.
Dritte Ausgabe:
Im folgenden Code, auch wenn Sie einen sequentiellen Zähler einzuführen, ist dies immer noch falsch
for (var i = 0; i <= 100; i = i + 3) {
numbers[i - 1] = i;
}
weil i
mit 3 statt 0 beginnen sollte, sonst werden Sie am Ende up mit 34 Elementen im Array, weil numbers[0]
0 wird;
Vierte Ausgabe:
In diesem Code
for (var index = 0; index < 100; index++) {
document.write("<br/>" + numbers[index]);
sum = sum + i;
}
Sie tatsächlich haben es bis 100, haben Sie bereits eine Schleife haben nicht die Zahlen Array gefüllt, so dass Sie nur verwenden müssen numbers.length
, wie diese
var len = numbers.length;
for (var index = 0; index < len; index++) {
document.write("<br/>" + numbers[index]);
sum = sum + i;
}
Eine bessere Art zu schreiben Diese
var numbers = [];
for (var i = 3, j=0; i <= 100; i = i + 3, j++) {
numbers[j] = i;
}
var sum = numbers.reduce((a, b) => a+b);
console.log(sum);
Die Linie var sum = numbers.reduce((a, b) => a+b);
verwendet Array.reduce() Methode.
Drei Probleme, die ich sofort sehe: 'i - 1' wird' '- 1 'in der ersten Iteration. Wenn "i" durch "3" inkrementiert wird und als Array-Index verwendet wird, entstehen * Löcher * im Array. 'Zahlen' haben keine' 100' Elemente, also sollten Sie nicht von '0' auf '100' über iterieren. Was denkst du ist "i" in "sum = sum + i;"? –
Warum verwenden Sie zwei Schleifen? http://stackoverflow.com/questions/41296674/array-loop-in-javascript/#41300246 versuchen Sie dies –