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

このdoesntの仕事は=(、配列内の配列を行うことはできません。これは私が何が起こっていたかである:?オブジェクト内の配列内の配列?私は新しい配列()、または何かをしようとした場合でも

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

私が知っています私は

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

ような何かを行うことができます。しかし、これは

を読み取ることがように簡単にしない私が何か​​間違ったことをやっている?私は、私は考えることができ、すべての可能な組み合わせを試してみましたgoogleを使って '配列内の配列'を検索すると、他の結果が出てきます。どんな助けでも大歓迎です

+1

'Spells [0]'にはオブジェクトが割り当てられている必要があります。存在しないオブジェクトにプロパティ 'Type'を追加しようとしているようです。 – Marty

+0

このような明白なものを見落として申し訳ありません、それを説明するためにあまりにも多くをありがとう –

答えて

7

あなたはステップを逃しました。 HeroName.Spells[0]はオブジェクトであると宣言していないため、存在しないため、Typeプロパティはオブジェクトにできません。これは動作します:

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

Doh私は今、愚かな気がします...あなたの助けをありがとう、とてもうれしい!もう一度ありがとうございます –

+0

あなたは大歓迎です@HateNames – Paulpro

3

セットHeroName.Spells [0] Objectとして、そうでない場合、それはundefinedです。 undefinedにはプロパティを設定できません。

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

例を説明して書く時間を取ってくれてありがとう –

関連する問題