Heim > Web-Frontend > js-Tutorial > Wie greife ich über String-Pfade auf verschachtelte JavaScript-Objekt-/Array-Werte zu?

Wie greife ich über String-Pfade auf verschachtelte JavaScript-Objekt-/Array-Werte zu?

Linda Hamilton
Freigeben: 2024-12-22 05:37:12
Original
970 Leute haben es durchsucht

How to Access Nested JavaScript Object/Array Values Using String Paths?

Zugriff auf Eigenschaften und Elemente über String-Pfade

Frage:

Wie können Sie Werte aus einem verschachtelten JavaScript-Objekt abrufen oder? Array mithilfe eines Zeichenfolgenpfads, der die Eigenschaft oder das Element angibt Namen?

Antwort:

Mit reinem JavaScript können Sie dies mit der folgenden Hilfsfunktion erreichen:

Object.byString = function (o, s) {
  s = s.replace(/\[(\w+)\]/g, "."); // convert indexes to properties
  s = s.replace(/^\./, ""); // strip a leading dot
  var a = s.split(".");
  for (var i = 0, n = a.length; i < n; ++i) {
    var k = a[i];
    if (k in o) {
      o = o[k];
    } else {
      return;
    }
  }
  return o;
};
Nach dem Login kopieren

Diese Funktion benötigt zwei Parameter : das zu navigierende Objekt oder Array und ein Zeichenfolgenpfad, der die Eigenschaften oder Elemente darstellt, zu denen navigiert werden soll abrufen.

Beispiel:

Verwenden wir die bereitgestellte Beispieldatenstruktur:

var someObject = {
  part1: {
    name: "Part 1",
    size: "20",
    qty: "50",
  },
  part2: {
    name: "Part 2",
    size: "15",
    qty: "60",
  },
  part3: [
    {
      name: "Part 3A",
      size: "10",
      qty: "20",
    },
    {
      name: "Part 3B",
      size: "5",
      qty: "20",
    },
    {
      name: "Part 3C",
      size: "7.5",
      qty: "20",
    },
  ],
};
Nach dem Login kopieren

Um auf die „name“-Eigenschaft des „part1 "-Objekt mithilfe des Zeichenfolgenpfads verwenden, würden Sie Folgendes verwenden:

var part1name = Object.byString(someObject, "part1.name");
console.log(part1name); // Output: Part 1
Nach dem Login kopieren

Ähnlich können Sie die Eigenschaft „qty“ von abrufen das „part2“-Objekt:

var part2quantity = Object.byString(someObject, "part2.qty");
console.log(part2quantity); // Output: 60
Nach dem Login kopieren

Und um auf die „name“-Eigenschaft des ersten Elements im „part3“-Array zuzugreifen:

var part3name1 = Object.byString(someObject, "part3[0].name");
console.log(part3name1); // Output: Part 3A
Nach dem Login kopieren

Hinweis: Es ist wichtig, numerischen Array-Indizes eckige Klammern („[“) voranzustellen und ihnen eckige Klammern und einen Punkt („].“ anzuhängen. Dadurch wird sichergestellt, dass die Funktion korrekt auf Array-Elemente zugreift.

Das obige ist der detaillierte Inhalt vonWie greife ich über String-Pfade auf verschachtelte JavaScript-Objekt-/Array-Werte zu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage