In bestimmten Szenarien stoßen Entwickler häufig auf Datenstrukturen mit komplexer Verschachtelung und stehen vor der Herausforderung, mithilfe von Strings auf bestimmte Werte darin zuzugreifen als Pfade.
Betrachten Sie beispielsweise das folgende Objekt:
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' } ] };
Um verschachtelte Werte mithilfe einer Zeichenfolge abzurufen Pfaden können die folgenden Techniken eingesetzt werden:
Mit der Dienstprogrammfunktion Object.byString können Sie das Objekt durchlaufen und auf bestimmte Werte zugreifen:
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; };
Verwendung:
Object.byString(someObject, 'part3[0].name'); // "Part 3A"
Die $.val()-Methode von jQuery kann kann auch zum Navigieren in verschachtelten Objekten und Arrays verwendet werden:
$.val('part1.name', someObject); // "Part 1" $.val('part2.qty', someObject); // 60 $.val('part3[0].name', someObject); // "Part 3A"
Beide Ansätze bieten bequeme Möglichkeiten, über Zeichenfolgenpfade auf Daten in verschachtelten Strukturen zuzugreifen, wodurch die Handhabung und Manipulation komplexer Daten vereinfacht wird.
Das obige ist der detaillierte Inhalt vonWie greife ich über String-Pfade auf verschachtelte JavaScript-Objekte und -Arrays zu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!