Verschachtelte Objekteigenschaften aus Pfadzeichenfolgen abrufen

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 untersuchen, wie man verschachtelte Objekteigenschaften in JavaScript mithilfe einer gegebenen Pfadzeichenfolge abruft. Wir werden lernen, wie man verschiedene Array-Methoden wie map(), filter() und reduce() verwendet, um bestimmte Werte aus komplexen Objekten zu extrahieren. Diese Fähigkeit ist unerlässlich für die Arbeit mit großen Datensätzen und APIs, die verschachtelte JSON-Objekte zurückgeben.


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/array_methods("Array Methods") javascript/AdvancedConceptsGroup -.-> javascript/higher_funcs("Higher-Order Functions") javascript/AdvancedConceptsGroup -.-> javascript/spread_rest("Spread and Rest Operators") subgraph Lab Skills javascript/variables -.-> lab-28356{{"Verschachtelte Objekteigenschaften aus Pfadzeichenfolgen abrufen"}} javascript/data_types -.-> lab-28356{{"Verschachtelte Objekteigenschaften aus Pfadzeichenfolgen abrufen"}} javascript/arith_ops -.-> lab-28356{{"Verschachtelte Objekteigenschaften aus Pfadzeichenfolgen abrufen"}} javascript/comp_ops -.-> lab-28356{{"Verschachtelte Objekteigenschaften aus Pfadzeichenfolgen abrufen"}} javascript/array_methods -.-> lab-28356{{"Verschachtelte Objekteigenschaften aus Pfadzeichenfolgen abrufen"}} javascript/higher_funcs -.-> lab-28356{{"Verschachtelte Objekteigenschaften aus Pfadzeichenfolgen abrufen"}} javascript/spread_rest -.-> lab-28356{{"Verschachtelte Objekteigenschaften aus Pfadzeichenfolgen abrufen"}} end

Wie man verschachtelte Objekteigenschaften aus Pfadzeichenfolgen abruft

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

Die folgende Funktion ruft eine Reihe von Eigenschaften aus einem Objekt mithilfe von Selektoren ab, die in einer Pfadzeichenfolge angegeben sind. Um dies zu erreichen, befolgen Sie diese Schritte:

  1. Verwenden Sie Array.prototype.map(), um durch jeden Selektoren zu iterieren, und wenden Sie String.prototype.replace() an, um eckige Klammern durch Punkte zu ersetzen.
  2. Verwenden Sie String.prototype.split(), um jeden Selektoren in ein Array von Zeichenfolgen aufzuteilen.
  3. Verwenden Sie Array.prototype.filter(), um alle leeren Werte zu entfernen.
  4. Verwenden Sie Array.prototype.reduce(), um den von jedem Selektoren angegebenen Wert abzurufen.

Hier ist die Funktion:

const get = (from, ...selectors) =>
  [...selectors].map((s) =>
    s
      .replace(/\[([^\[\]]*)\]/g, ".$1.")
      .split(".")
      .filter((t) => t !== "")
      .reduce((prev, cur) => prev && prev[cur], from)
  );

Sie können diese Funktion verwenden, um Werte aus einem verschachtelten Objekt mithilfe einer Pfadzeichenfolge abzurufen. Hier ist ein Beispiel:

const obj = {
  selector: { to: { val: "val to select" } },
  target: [1, 2, { a: "test" }]
};
get(obj, "selector.to.val", "target[0]", "target[2].a");
// ['val to select', 1, 'test']

Zusammenfassung

Herzlichen Glückwunsch! Sie haben das Lab "Get Nested Object Property From Path String" abgeschlossen. Sie können in LabEx weitere Labs üben, um Ihre Fähigkeiten zu verbessern.