Zugriff auf verschachtelte JavaScript-Objekte und Arrays über den String-Pfad
Der Zugriff auf tief verschachtelte Objekte und Arrays in JavaScript kann eine umständliche Aufgabe sein. Um dies zu vereinfachen, wurde eine Lösung entwickelt, die einen String-Pfad nutzt, um bestimmte Werte direkt abzurufen.
Reine JavaScript-Lösung
Eine reine JavaScript-Lösung namens „Object.byString( )“ ermöglicht die Extraktion verschachtelter Werte mithilfe einer Zeichenfolge, die einem durch Punkte getrennten Pfad folgt. Diese Lösung funktioniert wie folgt:
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(someObj, 'part3[0].name');
jQuery-Lösung
jQuery bietet eine einfachere Syntax für den Zugriff auf verschachtelte Werte:
$('someObj').data('part3[0].name');
Beispiel Verwendung
Betrachten Sie 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' } ] };
Mithilfe der bereitgestellten Zeichenfolgenpfade können wir wie folgt auf bestimmte Werte zugreifen:
var part1name = Object.byString(someObject, 'part1.name'); var part2quantity = Object.byString(someObject, 'part2.qty'); var part3name1 = Object.byString(someObject, 'part3[0].name');
Diese Variablen werden Halten Sie nun die entsprechenden Werte aus dem verschachtelten Objekt bereit.
Das obige ist der detaillierte Inhalt vonWie kann ich mithilfe von String-Pfaden einfach auf verschachtelte JavaScript-Objekte und -Arrays zugreifen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!