我有一个数组,它加载一个在特定索引处具有属性的数组:
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,也从未定义过。
如果可能的话,保持简单,尽量避免嵌套数组太深。