2013-06-26 37 views
5

Tôi đang cố truy cập mảng bên trong đối tượng bằng phương pháp Object.keys(obj.arr));. Nếu tôi truy cập vào mảng trực tiếp như dưới đây, sau đó nó được đưa ra đầu ra thích hợp:Loại không bắt buộcLỗi: Object.keys được gọi là không đối tượng trong khi cố gắng truy cập đối tượng

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

nhưng nếu tôi vượt qua tên mảng sử dụng tham số sau đó nó được đưa ra lỗi:

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

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

Có dụ: DEMO

+0

Cả hai đoạn bạn làm điều tương tự – Esailija

Trả lời

3

Nếu bạn cần quyền truy cập thuộc tính động, bạn không thể sử dụng .value. Đó luôn là nghĩa đen truy cập vào khóa có tên là "value". Nếu bạn muốn truy cập thuộc tính với tên chính chứa trong biến value bạn cần phải sử dụng dấu ngoặc: obj[value]

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

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

Thats câu trả lời. Yea nó trượt ra khỏi tâm trí của tôi. – apaleja

Các vấn đề liên quan