2014-02-15 3 views
0

я видел другие вопросы и все примеры, как показано нижеэкономии значения в двумерном массиве Javascript

var arr = [1, 2, [3, 4], 5]; 

alert (arr[2][1]); 

Но я хочу somethingl IKE это

var mmo = []; 

mmo["name"] = "steve"; 
mmo["name"]["x"] = "20"; 
mmo["name"]["y"] = "40"; 

alert(mmo["name"]["y"]); // should alert 40 but its undefined 
+0

Не знаете, почему вы хотите иметь дополнительные свойства в строке. Однако вы можете сделать это, если вы создадите его как 'mmo [" name "] = new String (" steve ");' – techfoobar

+0

И этот ответ объясняет это довольно хорошо: http://stackoverflow.com/a/2051893/921204 – techfoobar

ответ

2

Вы не можете иметь оба значения и массив в том же элементе.

Используйте объект вместо массива, так как вы хотите использовать named properties insted of numeric indices.

Поместите объект как собственность, то вы можете поместить свойства в этом объекте:

var mmo = {}; 

mmo["name"] = {}; 
mmo["name"]["x"] = "20"; 
mmo["name"]["y"] = "40"; 

Если вы хотите использовать массив в объекте, то вы должны использовать числовые индексы:

var mmo = {}; 

mmo["name"] = []; 
mmo["name"][0] = "20"; 
mmo["name"][1] = "40"; 

Если вы хотите использовать массив в массиве, то все было бы числовые показатели:

var mmo = []; 

mmo[0] = []; 
mmo[0][0] = "20"; 
mmo[0][1] = "40"; 

Массив также является объектом, поэтому вы можете использовать массив и поместить в него свойства, но это в основном запутывает.

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