JavaScript-Objekt mit Rekursion flachstellen

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 eine JavaScript-Funktion untersuchen, die ein Objekt mit den Pfaden für die Schlüssel flachstellt. Die Funktion verwendet Rekursion und Object.keys(), kombiniert mit Array.prototype.reduce(), um jeden Blattknoten in einen flachen Pfadknoten umzuwandeln. Am Ende dieses Labs werden Sie ein besseres Verständnis dafür haben, wie Sie JavaScript-Objekte manipulieren und sie flachstellen, um die Datenverarbeitung zu erleichtern.


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/BasicConceptsGroup -.-> javascript/array_methods("Array Methods") javascript/AdvancedConceptsGroup -.-> javascript/higher_funcs("Higher-Order Functions") javascript/AdvancedConceptsGroup -.-> javascript/destr_assign("Destructuring Assignment") javascript/AdvancedConceptsGroup -.-> javascript/template_lit("Template Literals") subgraph Lab Skills javascript/variables -.-> lab-28312{{"JavaScript-Objekt mit Rekursion flachstellen"}} javascript/data_types -.-> lab-28312{{"JavaScript-Objekt mit Rekursion flachstellen"}} javascript/arith_ops -.-> lab-28312{{"JavaScript-Objekt mit Rekursion flachstellen"}} javascript/comp_ops -.-> lab-28312{{"JavaScript-Objekt mit Rekursion flachstellen"}} javascript/cond_stmts -.-> lab-28312{{"JavaScript-Objekt mit Rekursion flachstellen"}} javascript/array_methods -.-> lab-28312{{"JavaScript-Objekt mit Rekursion flachstellen"}} javascript/higher_funcs -.-> lab-28312{{"JavaScript-Objekt mit Rekursion flachstellen"}} javascript/destr_assign -.-> lab-28312{{"JavaScript-Objekt mit Rekursion flachstellen"}} javascript/template_lit -.-> lab-28312{{"JavaScript-Objekt mit Rekursion flachstellen"}} end

Ein Objekt flachstellen

Um ein Objekt mit Pfaden für die Schlüssel zu flachstellen, folgen Sie diesen Schritten:

  1. Öffnen Sie das Terminal/SSH und geben Sie node ein, um mit der Codeausführung zu beginnen.
  2. Verwenden Sie Rekursion, um das Objekt zu flachstellen.
  3. Verwenden Sie Object.keys(), kombiniert mit Array.prototype.reduce(), um jeden Blattknoten in einen flachen Pfadknoten umzuwandeln.
  4. Wenn der Wert eines Schlüssels ein Objekt ist, rufen Sie die Funktion rekursiv mit dem entsprechenden prefix auf, um den Pfad mit Object.assign() zu erstellen.
  5. Andernfalls fügen Sie das entsprechend vorangestellte Schlüssel-Wert-Paar dem Akkumulatorobjekt hinzu.
  6. Überspringen Sie das zweite Argument, prefix, es sei denn, Sie möchten, dass jeder Schlüssel einen Präfix hat.

Hier ist eine Beispielimplementierung:

const flattenObject = (obj, prefix = "") =>
  Object.keys(obj).reduce((acc, k) => {
    const pre = prefix.length ? `${prefix}.` : "";
    if (
      typeof obj[k] === "object" &&
      obj[k] !== null &&
      Object.keys(obj[k]).length > 0
    ) {
      Object.assign(acc, flattenObject(obj[k], pre + k));
    } else {
      acc[pre + k] = obj[k];
    }
    return acc;
  }, {});

Sie können die flattenObject-Funktion wie folgt verwenden:

flattenObject({ a: { b: { c: 1 } }, d: 1 }); // { 'a.b.c': 1, d: 1 }

Zusammenfassung

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