2013-06-26 13 views
5

Próbuję uzyskać dostęp do tablicy wewnątrz obiektu przy użyciu metody Object.keys(obj.arr));. Gdybym dostęp tablicę bezpośrednio jak poniżej, to daje właściwe wyjście:Uncaught TypeError: Object.keys wywołany na nieobiektach podczas próby uzyskania dostępu do obiektu

alert(Object.keys(obj.arr)); 

ale jeśli mijam nazwę tablicy za pomocą parametru to daje błąd:

var selected = "arr"; 
alert(Object.keys(obj.arr)); 

error : Uncaught TypeError: Object.keys called on non-object 

Istnieje przykład: DEMO

+0

Obie firmy fragmentów zrobić to samo – Esailija

Odpowiedz

3

Jeśli potrzebujesz dynamicznego dostępu do właściwości, nie możesz użyć .value. To zawsze dosłownie uzyskuje klucz o nazwie "value". Jeśli chcesz uzyskać dostęp do nieruchomości z nazwy klucza zawartego w zmiennej value trzeba użyć nawiasów: obj[value]

Fixed Demo: http://jsfiddle.net/Lv6TY/7/

console.log("Variable Pass "+Object.keys(groups[selected])); 
+0

Ów odpowiedź. Tak, ześlizgnęło mi się to z głowy. – apaleja

Powiązane problemy