二维数组 - 将对象添加到字段

时间:2013-03-13 20:09:11

标签: javascript arrays

我创建了一个数组:

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个对象放入此字段,但我不确切知道有多少个对象。 我应该如何更改它以使其正确?

5 个答案:

答案 0 :(得分: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

答案 1 :(得分: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"

答案 2 :(得分:1)

将“&lt; =”更改为“&lt;”。

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

数组基于零,所以如果你有一个包含5个插槽的数组,并且你想要访问你将使用的最后一个插槽:

anArray[4]

答案 3 :(得分:0)

在使用之前push ask to value是一个数组

if(test[0][5] instanceof  Array)
    test[0][5].push(object);

答案 4 :(得分: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;