Angesichts eines Arrays [1, 2, 3, 4]
Wie kann ich die Summe seiner Elemente finden? (In diesem Fall würde die Summe lauten 10
.)
Ich dachte $.each
könnte nützlich sein, aber ich bin mir nicht sicher, wie man es implementiert.
Angesichts eines Arrays [1, 2, 3, 4]
Wie kann ich die Summe seiner Elemente finden? (In diesem Fall würde die Summe lauten 10
.)
Ich dachte $.each
könnte nützlich sein, aber ich bin mir nicht sicher, wie man es implementiert.
Sie können auch reduceRight verwenden.
[1,2,3,4,5,6].reduceRight(function(a,b){return a+b;})
die als 21 ausgegeben wird.
Referenz: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/ReduceRight
Eine Standard-JavaScript-Lösung:
var addition = [];
addition.push(2);
addition.push(3);
var total = 0;
for (var i = 0; i < addition.length; i++)
{
total += addition[i];
}
alert(total); // Just to output an example
/* console.log(total); // Just to output an example with Firebug */
Das funktioniert bei mir (das Ergebnis sollte 5 sein). Ich hoffe, dass diese Art von Lösung keinen versteckten Nachteil mit sich bringt.
Für den einfachen Zweck der Summierung aller Werte hat die einfache alte for-Schleife keine Konkurrenten in Bezug auf die Ausführungszeit
Könnten Sie bitte diese Antwort erweitern und erklären, was in diesem Code geschieht? Warum funktioniert er? Was tut er genau? Diese Dinge tragen dazu bei, die Qualität der Antwort zu verbessern.
Dies ist zwar kurz und bündig und sicherlich interessant, aber auch sehr ineffizient. Verwendung von reduce
ist in den meisten, wenn nicht in allen Fällen vorzuziehen.
Ich bin ein Anfänger mit JavaScript und Codierung im Allgemeinen, aber ich fand, dass eine einfache und leichte Möglichkeit, die Zahlen in einem Array zu summieren ist wie folgt:
var myNumbers = [1,2,3,4,5]
var total = 0;
for(var i = 0; i < myNumbers.length; i++){
total += myNumbers[i];
}
Im Grunde wollte ich diesen Beitrag leisten, weil ich nicht viele Lösungen gesehen habe, die keine eingebauten Funktionen verwenden, und diese Methode ist einfach zu schreiben und zu verstehen.
Wie unterscheidet sich dies von diese Antwort von 2012 o diese Antwort von 2014 ? Es gibt zwei Lösungen, die Sie noch nicht gesehen haben.
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.
37 Stimmen
@tereško Unlust zu googeln ist kein gültiger Abschlussgrund auf Stackoverflow. Bitte stimmen Sie ab, wenn Sie das Gefühl haben, dass die Frage nicht gut (re)gesucht ist. (Auch nach den Antworten zu urteilen, scheint dies ein sehr kontroverses Thema mit vielen möglichen Lösungen zu sein, einschließlich einiger sehr hoch bewerteter schlechter Praktiken (eval) - überraschenderweise).
13 Stimmen
Hinweis: Die meisten Antworten hier berechnen im Wesentlichen
a[0] + a[1] + ...
was sich in eine String-Verkettung verwandeln kann, wenn das Array Nicht-Zahlen-Elemente enthält. z.B.['foo', 42].reduce((a,b)=>a+b, 0) === "0foo42"
.4 Stimmen
Kein eingebauter Reducer, den man in Array.reduce einspeisen könnte? Ich dachte an etwas wie
[1,2,3].reduce(Math.sum)
.