2012-01-06 7 views
6

Básicamente tienen un bucle incrementando i, y yo quiero hacer esto:¿Cómo puedo crear una matriz asociativa javascript {} con nombres de clave dinámicos?

var fish = { 'fishInfo[' + i + '][0]': 6 }; 

sin embargo, no funciona.

¿Alguna idea de cómo hacer esto? Quiero que el resultado sea

fish is { 'fishInfo[0][0]': 6 }; 
fish is { 'fishInfo[1][0]': 6 }; 
fish is { 'fishInfo[2][0]': 6 }; 

etc.

estoy usando $ .merge combinarlos si usted piensa ¿por qué está haciendo eso :)

+2

¿Qué pasa con (a) acaba de crear una matriz; o (b) usar un bucle para generar el contador? ¿Cuál es el problema que estás teniendo? – Marcin

Respuesta

9

declarar un objeto vacío, entonces se puede utilizar la sintaxis de matrices para asignar propiedades a ella de forma dinámica.

var fish = {}; 

fish[<propertyName>] = <value>; 
+1

Saludos esto lo ordenó. Y necesitaba $ .extend en lugar de $ .merge :) – NibblyPig

2

Para cualquier material dinámico con objeto claves, necesita la notación de soporte .

var fish = { }; 

fish[ 'fishInfo[' + i + '][0]' ] = 6; 
0

Las matrices multidimensionales en javascript se crean guardando una matriz dentro de una matriz.

Probar:

var multiDimArray = []; 
for(var x=0; x<10; x++){ 
    multiDimArray[x]=[]; 
    multiDimArray[x][0]=6; 
} 

violín exampe: http://jsfiddle.net/CyK6E/

5

Haga esto:

var fish = {}; 
fish['fishInfo[' + i + '][0]'] = 6; 

Funciona, porque se puede leer & escritura a objetos utilizando la notación entre corchetes como esto:

my_object[key] = value; 

y esto:

alert(my_object[key]); 
Cuestiones relacionadas