In JavaScript gibt es mehrere Möglichkeiten, auf Objekteigenschaften zuzugreifen. Der Zugriff auf verschachtelte Eigenschaften mit einem Zeichenfolgenpfad kann jedoch eine Herausforderung sein.
Angenommen ein Objekt wie:
var r = { a:1, b: { b1:11, b2: 99}};
Stellen Sie sich ein Szenario vor, in dem Sie auf den Wert 99 zugreifen möchten, indem Sie eine Pfadzeichenfolge angeben var s = „b.b2“. Während die traditionellen Methoden wie r.b.b2 oder r['b']['b2'] funktionieren, bevorzugen Sie möglicherweise eine prägnantere Notation.
function getDescendantProp(obj, desc) { var arr = desc.split("."); while(arr.length && (obj = obj[arr.shift()])); return obj; }
Diese Funktion teilt die Zeichenfolge iterativ in Punkte auf, navigiert durch die Objektstruktur und gibt letztendlich die angeforderte Eigenschaft zurück.
console.log(getDescendantProp(r, "b.b2")); //-> 99
Die bereitgestellte Funktion unterstützt nur den Zugriff auf verschachtelte Objekteigenschaften. Für eine fortgeschrittenere Verwendung können Sie es so ändern, dass es auch Array-Indizes verarbeitet:
function advancedGetDescendantProp(obj, desc) { var arr = desc.split("."); while(arr.length) { let key = arr.shift(); if (isNaN(key)) { obj = obj[key]; } else { obj = obj[parseInt(key)]; } if (!obj) return undefined; } return obj; }
Das obige ist der detaillierte Inhalt vonWie greife ich mithilfe von Punktnotationszeichenfolgen effizient auf verschachtelte JavaScript-Objekteigenschaften zu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!