In Javascript, wie kann ich dynamisch eine verschachtelte Eigenschaft eines Objekts erhalten

var arr = { foo : 1, bar: { baz : 2 }, bee : 3 }

function getter(variable) {
  return arr[variable];
}

Wenn ich will, 'foo' vs 'Biene' kann ich nur tun arr[variable] - das ist einfach, und die Funktion tut.

Aber was ist, wenn ich will arr.bar.baz AKA arr[bar][baz]?

Was kann ich übergebe die get-Funktion, die mich das tun lassen, (und natürlich auch lassen Sie mich nicht verschachtelte Eigenschaften, die über die gleiche Funktion).

Versuchte ich getter('bar.baz') und getter('[bar][baz]') aber diese hat nicht funktioniert.

Ich glaube, ich kann analysieren, um Punkte oder Klammern (wie hier: Im javascript-test für die Eigenschaft tief verschachtelte Objekt-graph?). Gibt es eine bessere Möglichkeit? (Neben eval natürlich.)

Besonders, weil ich auf das tief richtig eingestellt, viele, viele Male in einer Schleife für eine ganze Reihe von array-Elementen.

Kommentar zu dem Problem
Warum verwenden Sie nicht nur, dass der Ansatz aus dem verlinkten Frage? Kommentarautor: Shi
Vor allem, weil der overhead für den Aufruf der Funktion so oft, und auch wenn es einen besseren Weg, ich will es lernen. Kommentarautor: Ariel

InformationsquelleAutor der Frage Ariel | 2011-08-02

Schreibe einen Kommentar