1

配列を作成しました:

var test = new Array(5);
for (i=0; i<=5; i++)
{
 test[i]=new Array(10);
}

そして今、私はフィールドにオブジェクトを追加したい:

test[0][5].push(object);

しかし、エラーが表示されます:

キャッチされていない TypeError: 未定義のメソッド 'push' を呼び出せません

このフィールドに 0 ~ 4 個のオブジェクトを入れたいので、「プッシュ」を使用していますが、そこにオブジェクトがいくつあるか正確にはわかりません。正しくするにはどのように変更すればよいですか?

4

5 に答える 5

5

この式test[0]は、次の行で作成された新しい Array インスタンスを参照します。

test[i]=new Array(10);

ただし、その配列には何もありませ。したがって、test[0][5]未定義のオブジェクトを参照します。何かを行う前に、それを配列に初期化する必要があります。push()例えば:

test[0][5] = []; // Set [0][5] to new empty array
test[0][5].push(object); // Push object onto that array

あるいは:

test[0][5] = [object]; // Set [0][5] to one item array with object
于 2013-03-13T20:16:15.083 に答える
2
var test = new Array(5);
for (i=0; i<=5; i++)
{
  test[i]=new Array();
}

これにより、多次元配列を作成できます。変数 test の各要素は配列になります。

ここからできること

test[0].push("push string");
test[0].push("push string2");

ここから

test[0][1] will contain "push string2"
于 2013-03-13T20:17:03.487 に答える
1

「<=」を「<」に変更します。

for (i = 0; i < 5; i++)

配列はゼロベースなので、5 つのスロットを持つ配列があり、最後のスロットにアクセスしたい場合は、次のように使用します。

anArray[4]
于 2013-03-13T20:12:35.147 に答える
0

使用する前に push ask to value は配列です

if(test[0][5] instanceof  Array)
    test[0][5].push(object);
于 2013-03-13T20:15:27.787 に答える
0
test[0][5] = new Array(); // you need initialize this position in Array
test[0][5].push(object); // and then push object

また

test[0][5] = [object]; // directly create a new Array with object

ただし、オブジェクトをこの位置に置きたいだけの場合は、次のようにする必要があります。

test[0][5] = object;
于 2013-03-13T20:15:40.293 に答える