Javascript:访问多维数组的属性



我有一个数组,它加载一个在特定索引处具有属性的数组:

var hotspotLocationsTextAndAudio [];
var myArr = [
[{x:10, y:40, filename:"test",  text:"test"}],
[{x:50, y:60, filename:"test2", text:"test2"}]
];
hotspotLocationsTextAndAudio[window.IDNum] = myArr;

访问hotspotLocationsTextAndAudio的某个索引处的属性(我的情况是什么窗口。IDNum =)在数组的索引里面(0)和一个特定的属性,我认为我只需要做以下事情:

alert(hotspotLocationsTextAndAudio[window.IDNum][0].x);

返回undefined

假设您实际使用的代码是:

var hotspotLocationsTextAndAudio [];
var myArr = [
  [{x:10, y:40, filename:"test",  text:"test"}],
  [{x:50, y:60, filename:"test2", text:"test2"]}
];
hotspotLocationsTextAndAudio[window.IDNum] = myArr;

你需要的警报代码是:

alert(hotspotLocationsTextAndAudio[window.IDNum][0][0].x);

原因是你在[]中包装了你的对象,把它们放在一个数组中。

或者,为了让您的原始警报工作,您需要将myArr更改为:

var myArr = [
  {x:10, y:40, filename:"test",  text:"test"},
  {x:50, y:60, filename:"test2", text:"test2"}
];

这个适合我:http://jsfiddle.net/Ku2tQ/

var hotspotLocationsTextAndAudio = [];
var myArr = [
[{x:10, y:40, filename:"test",  text:"test"}],
[{x:50, y:60, filename:"test2", text:"test2"}]
];
alert(myArr[1][0].x);

首先hotspotLocationsTextAndAudio是一个空数组,你永远不会推/合并myArr到它。因此,试图访问一个空数组的嵌套值将会失败。

arr,也从未定义过。

如果可能的话,保持简单,尽量避免嵌套数组太深。

相关内容

  • 没有找到相关文章

最新更新