2014-07-08 4 views
0

У меня есть массив, который загружает массив со свойствами при определенном индексе: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 (мой случай того, что window.IDNum равно) при индексе массива внутри этого (0) и некоторого свойства, я думал, что просто нужно сделать следующее:

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

Это возвращает неопределенное.

+0

Является ли 'hotspotLocationsTextAndAudio [window.IDNum] = arr;' предполагается быть 'hotspotLocationsTextAndAudio [window.IDNum] = myArr;'? – Samsquanch

+0

Да, спасибо. Просто отредактирован. Он передавался через функцию перед отправкой кода и забыл изменить это. – VagueExplanation

ответ

1

Предполагая, что код, который вы на самом деле, используя это:

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"} 
]; 
+0

Ahhh эти скобки ... спасибо! – VagueExplanation

0

Это работает для меня: 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, также не определен.

Если возможно, держите его в покое и старайтесь избегать вложенного массива слишком глубоко.

Смежные вопросы