2013-08-29 46 views
6
HeroName = new Hero() 
HeroName.Spells = []; 
HeroName.Spells[0].Type = []; 

doesnt làm việc này = (, ngay cả khi tôi cố gắng mảng mới() hoặc bất cứ điều gì khác là nó không thể làm mảng trong mảng này là những gì tôi sẽ cho:Mảng trong một mảng, trong một đối tượng? .?

HeroName.Spells[0].Type[0] = new DmgSpell(); 
HeroName.Spells[0].Type[1] = new Buff(); 

tôi biết tôi có thể làm một cái gì đó giống như

HeroName.Spells[0][0] = new DmgSpelL(); 
HeroName.Spells[0][1] = new Buff(); 

Nhưng điều này không làm cho nó dễ dàng để đọc

tôi có làm điều gì sai? tôi đã thử mọi sự kết hợp có thể tôi có thể nghĩ ra và sử dụng google để tìm kiếm 'mảng trong mảng' cung cấp cho tôi các kết quả khác không giúp tôi. Bất kỳ trợ giúp nào được đánh giá rất cao

+1

'Spells [0]' cần phải có đối tượng được gán cho nó để làm việc - tại thời điểm có vẻ như bạn đang cố thêm thuộc tính 'Type' vào đối tượng không tồn tại. – Marty

+0

Xin lỗi vì đã bỏ lỡ một điều hiển nhiên và cảm ơn bạn rất nhiều vì đã giải thích nó –

Trả lời

7

Bạn đã bỏ lỡ một bước. Bạn chưa tuyên bố HeroName.Spells[0] là một đối tượng, do đó bạn không thể sở hữu thuộc tính Type vì nó không tồn tại. Công trình này:

HeroName = new Hero(); 
HeroName.Spells = []; 
HeroName.Spells[0] = {}; 
HeroName.Spells[0].Type = []; 
+0

Doh tôi cảm thấy ngu ngốc bây giờ ... cảm ơn rất nhiều vì đã giúp đỡ bạn, vì vậy vui vì nó hoạt động! Cảm ơn bạn một lần nữa –

+0

Bạn được chào đón @HateNames – Paulpro

3

Đặt HeroName.Spells [0] làm đối tượng, nếu không, nó là undefined. undefined không thể có bất kỳ thuộc tính nào.

HeroName.Spells[0] = {}; 
+0

Cảm ơn bạn đã dành thời gian giải thích và viết một ví dụ –

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