0

これまでに得たもの:

var Items = new Array(5); // this array contains the items
BodyPaint = new Array(1, 0, 1, 0, 0, 0, 0, 0, 0);  // this array gives stats for the item
WolfFur = new Array(3, 0, 1, 0, 0, 0, 0, 0, 0);       // ^^
BearFur = new Array(4, 0, 1, 0, 0, 0, 0, 0, 0);       // ^^
WolfSkin = new Array(6, 0, 0, 0, 0, 0, 0, 0, 0);     // ^^
BearSkin = new Array(7, 1, 0, 0, 0, 0, 0, 0, 0);     // ^^

この配列は機能しますか?私はプログラミングに比較的慣れておらず、友人はこれが私がすべきことだと提案しましたが、周りを見回したところ、他のどこでも、彼らがそれを説明するのであれば理にかなっているかもしれないより複雑な方法を推奨しています。この配列が機能する場合は、これまでのところ 2 番目の配列の値にアクセスして、オオカミの毛皮の 1 番目の統計にアクセスする方法を教えてください。

var example = Items.2.1

これは(^^)うまくいきますか?

それがうまくいかない場合は、上記の例の名前を使用してそれを行う方法を教えてください。どうも。

私は今オブジェクトを使用しています、私は得ました:

var Items = {
    BodyPaint : new Array(1, 0, 1, 0, 0, 0, 0, 0, 0),
    FurCloak : new Array(3, 0, 1, 0, 0, 0, 0, 0, 0),
    WolfSkin : new Array(5, 0, 0, 0, 0, 0, 0, 0, 0)};

より多くの配列がありますが、スペースを節約するためにここで終了しました 次のエラーが発生します:コードには適していません。また、アイテムがここで数字として参照されることを本当に望んでいません。どれがどれであるかを知ることはできません

4

3 に答える 3

2

いいえ。それは、配列から値を取得する方法ではありません。

Items[2][1]配列がこのようなものであれば機能します。

var BodyPaint = new Array(1, 0, 1, 0, 0, 0, 0, 0, 0);  // this array gives stats for the item
var WolfFur   = new Array(3, 0, 1, 0, 0, 0, 0, 0, 0);       // ^^
var BearFur   = new Array(4, 0, 1, 0, 0, 0, 0, 0, 0);       // ^^
var WolfSkin  = new Array(6, 0, 0, 0, 0, 0, 0, 0, 0);     // ^^
var BearSkin  = new Array(7, 1, 0, 0, 0, 0, 0, 0, 0);     // ^^
Items = [BodyPaint, WolfFur, BearFur, WolfSkin, BearSkin];

Items[2][1]0を返します。


編集:あなたもオブジェクトの使用に興味があるかもしれません。

var Items = {
     BodyPaint: new Array(1, 0, 1, 0, 0, 0, 0, 0, 0),
     WolfFur:   new Array(3, 0, 1, 0, 0, 0, 0, 0, 0),
     BearFur:   new Array(4, 0, 1, 0, 0, 0, 0, 0, 0),
     WolfSkin:  new Array(6, 0, 0, 0, 0, 0, 0, 0, 0),
     BearSkin:  new Array(7, 1, 0, 0, 0, 0, 0, 0, 0)
}

これにより、次のようなコードを記述できます。

Items.BearFur[1]0を返し、上記と同じItems[2][1]です。

于 2013-02-09T08:38:52.747 に答える
0

アイテムを他の配列にリンクしていないため、機能しません。あなたは書く必要があるでしょう:

var BodyPaint = new Array(1, 0, 1, 0, 0, 0, 0, 0, 0);
var WolfFur = new Array(3, 0, 1, 0, 0, 0, 0, 0, 0);
var BearFur = new Array(4, 0, 1, 0, 0, 0, 0, 0, 0);
var WolfSkin = new Array(6, 0, 0, 0, 0, 0, 0, 0, 0);
var BearSkin = new Array(7, 1, 0, 0, 0, 0, 0, 0, 0);
var Items = new Array(BodyPaint, WolfFur, BearFur, WolfSkin, BearSkin);

次に、これは機能します:

var example = Items[2][1];

配列の代わりにJavaScriptオブジェクトを使用することをお勧めします。JSONでは、これは次のようになります。

var Items = {
   BodyPaint : Array(1, 0, 1, 0, 0, 0, 0, 0, 0),
   WolfFur : new Array(3, 0, 1, 0, 0, 0, 0, 0, 0),
   BearFur : new Array(4, 0, 1, 0, 0, 0, 0, 0, 0),
   WolfSkin : new Array(6, 0, 0, 0, 0, 0, 0, 0, 0),
   BearSkin : new Array(7, 1, 0, 0, 0, 0, 0, 0, 0)};

次に、次のような新しいアイテムを追加できます。

Items.AnotherItem = new Array(8, 0, 0, 0, 0, 0, 0, 0, 0);

または:

Items['AnotherItem'] = new Array(8, 0, 0, 0, 0, 0, 0, 0, 0);

そして、次のようなプロパティを取得します。

var example = Items.WolfSkin[5];

JavaScriptオブジェクトは非常に柔軟性がありますので、時間をかけて実際に理解することをお勧めします。

于 2013-02-09T08:41:37.480 に答える
0

複数の 1D 配列しかないので、次のようにそれらを 2D に結合する必要があります。

var Items = new Array
BodyPaint = new Array(1, 0, 1, 0, 0, 0, 0, 0, 0);
WolfFur = new Array(3, 0, 1, 0, 0, 0, 0, 0, 0);
BearFur = new Array(4, 0, 1, 0, 0, 0, 0, 0, 0);
WolfSkin = new Array(6, 0, 0, 0, 0, 0, 0, 0, 0);
BearSkin = new Array(7, 1, 0, 0, 0, 0, 0, 0, 0);

Items[0] = BodyPaint;

alert(Items[0][2]);

その場合、2D があり、アラートの例でアイテムにアクセスできます

于 2013-02-09T08:38:08.543 に答える