Funktionskürzung in JavaScript

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 Funktionenkürzung und -entkürzung in JavaScript erkunden. Die Funktionenkürzung ist eine Technik, die uns ermöglicht, eine Funktion, die mehrere Argumente annimmt, in eine Sequenz von Funktionen umzuwandeln, von denen jede nur ein einzelnes Argument annimmt. Andererseits ist die Funktionentkürzung der Prozess, eine Sequenz von Funktionen, von denen jede nur ein einzelnes Argument annimmt, in eine Funktion umzuwandeln, die mehrere Argumente annimmt. Durch dieses Lab werden wir lernen, wie man beide diese Techniken in JavaScript implementiert.


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/BasicConceptsGroup -.-> javascript/cond_stmts("Conditional Statements") javascript/AdvancedConceptsGroup -.-> javascript/error_handle("Error Handling") javascript/AdvancedConceptsGroup -.-> javascript/higher_funcs("Higher-Order Functions") javascript/AdvancedConceptsGroup -.-> javascript/spread_rest("Spread and Rest Operators") subgraph Lab Skills javascript/variables -.-> lab-28676{{"Funktionskürzung in JavaScript"}} javascript/data_types -.-> lab-28676{{"Funktionskürzung in JavaScript"}} javascript/arith_ops -.-> lab-28676{{"Funktionskürzung in JavaScript"}} javascript/comp_ops -.-> lab-28676{{"Funktionskürzung in JavaScript"}} javascript/cond_stmts -.-> lab-28676{{"Funktionskürzung in JavaScript"}} javascript/error_handle -.-> lab-28676{{"Funktionskürzung in JavaScript"}} javascript/higher_funcs -.-> lab-28676{{"Funktionskürzung in JavaScript"}} javascript/spread_rest -.-> lab-28676{{"Funktionskürzung in JavaScript"}} end

Entkürzen einer Funktion

Um eine Funktion bis zu einer bestimmten Tiefe zu entkürzen, verwenden Sie die uncurry-Funktion.

const uncurry =
  (fn, n = 1) =>
  (...args) => {
    const next = (acc) => (args) => args.reduce((x, y) => x(y), acc);
    if (n > args.length) throw new RangeError("Arguments too few!");
    return next(fn)(args.slice(0, n));
  };

Um die uncurry-Funktion zu verwenden, übergeben Sie als Argumente die Funktion, die Sie entkürzen möchten, und die Tiefe, bis zu der Sie sie entkürzen möchten. Die Funktion wird eine variadische Funktion zurückgeben, die Sie mit den Argumenten aufrufen können, die Sie übergeben möchten.

Wenn Sie die Tiefe nicht angeben, wird die Funktion bis zur Tiefe 1 entkürzt.

const add = (x) => (y) => (z) => x + y + z;
const uncurriedAdd = uncurry(add, 3);
uncurriedAdd(1, 2, 3); // 6

Wenn die Anzahl der übergebenen Argumente kleiner als die angegebene Tiefe ist, wird die Funktion einen RangeError werfen.

Zusammenfassung

Herzlichen Glückwunsch! Sie haben das Entkürzen von Funktionen-Lab abgeschlossen. Sie können in LabEx weitere Labs absolvieren, um Ihre Fähigkeiten zu verbessern.