0

我正在尝试创建一个包含对象的数组数组,

这是我的代码,

var objA = new Array();

function myFunction(){
     objA ['1'] = new Array();
     objA ['1'].push({'bird':'parrot','animal':'rabbit'});
     var item = objA ['1'];
     alert(item['bird']);
}

现在理想情况下,上面的代码应该提醒“鹦鹉”,但我得到的是“未定义”。
我究竟做错了什么?

4

3 回答 3

2

你应该使用:

var item = objA ['1'][0];

当你这样做时,objA ['1'].push(..)你正在将一个项目附加到数组objA ['1']- 其项目应该由索引引用objA ['1'][0]objA ['1'][1]等等。

于 2012-12-13T06:20:52.910 回答
2

您将属性设置为新数组:

objA ['1'] = new Array();

因此,当然,当您检索它时,您将返回一个数组

var item = objA ['1'];

数组没有bird属性。但是,数组中的第一项确实如此。

alert(item[0]['bird']);
于 2012-12-13T06:21:14.690 回答
1

总是console.log(anything)为了更好地理解对象。需要进行以下更改。

var item = objA ['1'][0];

http://jsfiddle.net/rpnzG/

于 2012-12-13T06:27:58.207 回答