Konvergierende Verzweigungsfunktionen

JavaScriptJavaScriptBeginner
Jetzt üben

This tutorial is from open-source community. Access the source code

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab werden wir das Konzept der konvergierenden Verzweigungsfunktionen in JavaScript erkunden. Ziel dieses Labs ist es, Ihnen zu helfen, zu verstehen, wie man eine Higher-Order-Funktion erstellt, die eine Liste von Verzweigungsfunktionen und eine konvergierende Funktion als Argumente akzeptiert und eine neue Funktion zurückgibt, die jede Verzweigungsfunktion auf die Argumente anwendet und die Ergebnisse an die konvergierende Funktion übergibt. Diese Technik kann in vielen Szenarien nützlich sein, in denen Sie mehrere Funktionen kombinieren müssen, um ein endgültiges Ergebnis zu erhalten.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL javascript(("JavaScript")) -.-> javascript/BasicConceptsGroup(["Basic Concepts"]) javascript(("JavaScript")) -.-> javascript/AdvancedConceptsGroup(["Advanced Concepts"]) javascript/BasicConceptsGroup -.-> javascript/variables("Variables") javascript/BasicConceptsGroup -.-> javascript/data_types("Data Types") javascript/BasicConceptsGroup -.-> javascript/arith_ops("Arithmetic Operators") javascript/BasicConceptsGroup -.-> javascript/comp_ops("Comparison Operators") javascript/AdvancedConceptsGroup -.-> javascript/higher_funcs("Higher-Order Functions") javascript/AdvancedConceptsGroup -.-> javascript/spread_rest("Spread and Rest Operators") subgraph Lab Skills javascript/variables -.-> lab-28212{{"Konvergierende Verzweigungsfunktionen"}} javascript/data_types -.-> lab-28212{{"Konvergierende Verzweigungsfunktionen"}} javascript/arith_ops -.-> lab-28212{{"Konvergierende Verzweigungsfunktionen"}} javascript/comp_ops -.-> lab-28212{{"Konvergierende Verzweigungsfunktionen"}} javascript/higher_funcs -.-> lab-28212{{"Konvergierende Verzweigungsfunktionen"}} javascript/spread_rest -.-> lab-28212{{"Konvergierende Verzweigungsfunktionen"}} end

Konvergierende Funktionen

Um zu üben, öffnen Sie das Terminal/SSH und geben Sie node ein.

Diese Funktion converge nimmt eine konvergierende Funktion und eine Liste von Verzweigungsfunktionen als Eingabe entgegen. Sie gibt eine neue Funktion zurück, die jede Verzweigungsfunktion auf die Eingabeargumente anwendet. Die Ergebnisse der Verzweigungsfunktionen werden dann als Argumente an die konvergierende Funktion übergeben.

Die Methoden Array.prototype.map() und Function.prototype.apply() werden verwendet, um jede Funktion auf die Eingabeargumente anzuwenden. Anschließend wird der Spread-Operator (...) verwendet, um converger mit den Ergebnissen aller anderen Funktionen aufzurufen.

Hier ist der Code für die converge-Funktion:

const converge =
  (converger, fns) =>
  (...args) =>
    converger(...fns.map((fn) => fn.apply(null, args)));

Ein Beispiel für die Verwendung dieser Funktion wird unten gezeigt. Die average-Funktion wird erstellt, indem converge mit einer anonymen Funktion aufgerufen wird, die den Mittelwert eines Arrays berechnet. Die Verzweigungsfunktionen sind zwei anonyme Funktionen, die jeweils die Summe eines Arrays und seine Länge berechnen.

const average = converge(
  (a, b) => a / b,
  [(arr) => arr.reduce((a, v) => a + v, 0), (arr) => arr.length]
);
average([1, 2, 3, 4, 5, 6, 7]); // 4

Dieser Code berechnet den Mittelwert des Arrays [1, 2, 3, 4, 5, 6, 7] und gibt 4 zurück.

Zusammenfassung

Herzlichen Glückwunsch! Sie haben das Lab zu den konvergierenden Verzweigungsfunktionen abgeschlossen. Sie können in LabEx weitere Labs absolvieren, um Ihre Fähigkeiten zu verbessern.