ECMAScript5 definiert zwei Zusammenführungsmethoden für Arrays: record () und reduCeright (). Beide Methoden iterieren über die willkürlichen Elemente des Arrays und erstellen dann einen endgültigen zurückgegebenen Wert. Die Methode record () startet vom ersten Element des Arrays und iteriert das Ende des Arrays nacheinander. Die Reduderight () -Methode ist genau das Gegenteil. Es startet vom letzten Punkt des Arrays und geht zum ersten Element vor.
Beide Methoden empfangen zwei Parameter: eine Funktion, die auf jedem Element aufgerufen wird, und den Anfangswert als Grundlage für die Zusammenführung. Die Funktion, die an record () und receright () übergeben wurde, empfängt 4 Parameter: den vorherigen Wert, der aktuelle Wert, den Index des Elements und das Array -Objekt. Jeder von dieser Funktion zurückgegebene Wert wird automatisch als der erste Parameter an das nächste Element übergeben. Die erste Iteration erfolgt im zweiten Term des Arrays, sodass der erste Parameter der erste Term des Arrays ist, und der zweite Parameter ist der zweite Term des Arrays.
Zum Beispiel können wir die Methode record () verwenden, um die Summe aller Werte in einem Array zu finden.
var nums = [1,2,3,4,5]; var sum = nums.Reduce (Funktion (prev, cur, index, array) {retrun pre + cur;});Im obigen Code wird die Rückruffunktion zum ersten Mal ausgeführt. Die Präv ist 1 und CUR 2. Das zweite Mal ist 3 und CUR 3. Die Methode record () wiederholt diesen Vorgang, bis auf jedes Element im Array einmal zugegriffen wird und schließlich das zurückgegebene Ergebnis zuordnet.
Die Reduderight () -Methode ähnelt links und rechts, wird jedoch umgekehrt ausgeführt. Zum Beispiel:
var nums = [1,2,3,4,5]; var sum = nums.Recteright (Funktion (prev, cur, index, array) {retrun pre + cur;});In diesem Beispiel wird die Rückruffunktion zum ersten Mal ausgeführt, die Präv ist 5 und CUR 4. Das endgültige Summeergebnis ist das gleiche wie die Reduzierung () -Methode, beide 15.
Browser, die Reduzierung () und Reduktion () unterstützen, sind: IE9+, Firefox3+, Safari4+, Opera10.5+und Chrome.
Wieder auffüllen
ECMAScript5 fügt außerdem 2 neue Methoden hinzu, um Arrays zu verschmelzen: record () und receright ().
Beide iterieren über alle Gegenstände im Array
record (): nacheinander vom ersten Gegenstand bis zum Ende wiederholen.
Reduderight (): Ausgehend vom letzten Punkt des Arrays, iteriert sie zum ersten Punkt des Arrays.
Beide Methoden akzeptieren zwei Parameter: Die auf jedem Element aufgerufene Funktion (Parameter sind: Vorheriger Wert, aktueller Wert, Index des Elements, Array -Objekt)
Jeder von dieser Funktion zurückgegebene Wert wird automatisch als der erste Parameter an das nächste Element übergeben. Die erste Iteration erfolgt am zweiten Punkt des Arrays.
Daher ist der erste Parameter das erste Element des Arrays, und der zweite Parameter ist das zweite Element des Arrays
und als Anfangswert der Merge -Basis.
Verwenden Sie die Methode recry (), um die Summe aller Werte in einem Array durchzuführen, z. B.:
VAR -Werte = [1, 2, 3, 4, 5]; var sum = values.Reduce (Funktion (prev, cur, index, array) {return pre + cur;}); Alarm (Summe); // Das Ergebnis ist das gleiche, aber die Richtung ist die entgegengesetzte var sum2 = values. Reduceright (function (prev, cur, index, array) {return prew+cur;}); Alarm (sum2);Merge -Sortierung ist ein effektiver Sortieralgorithmus, der auf dem Zusammenführungsbetrieb basiert. Dieser Algorithmus ist eine sehr typische Anwendung von Kluft und Eroberung.
Zusammenführende Sortiermethode besteht darin, zwei (oder mehr als zwei) geordnete Tabellen in eine neue geordnete Tabelle zusammenzuführen, dh die zu sortierte Sequenz in mehrere Subsequenzen, jede Subsequenz wird geordnet. Anschließend werden die geordneten Untersequenzen in die insgesamt geordnete Sequenz zusammengefasst.
Die Zusammenführungssortierung ist ein effektiver Sortieralgorithmus, der auf dem Zusammenführungsbetrieb basiert. Dieser Algorithmus ist eine sehr typische Anwendung von Kluft und Eroberung. Zusammenführen Sie die geordneten Untersequenzen, um eine vollständig geordnete Sequenz zu erhalten; das heißt, machen Sie jede Subsequenz erster Ordnung und dann die Subsequence -Segmente. Wenn zwei bestellte Tische in eine bestellte Tabelle verschmolzen werden, wird dieser 2-Wege-Zusammenschluss bezeichnet.