2012-01-06 16 views
6

Zasadniczo mam pętlę wzrastających i, i chcę, aby to zrobić:Jak utworzyć tablicę asocjacyjną javascript {} z dynamicznymi nazwami kluczy?

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

jednak to nie działa.

Jakieś pomysły, jak to zrobić? Chcę być wynikiem

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

itp

Używam $ .merge połączyć je, jeśli myślisz, dlaczego na ziemi robi to :)

+2

Co się stało z (a) tylko tworząc tablicę; lub (b) używając pętli do wygenerowania licznika? Jaki masz problem? – Marcin

Odpowiedz

9

Zadeklaruj pusty obiekt, a następnie możesz użyć składni tablicy, aby dynamicznie przypisać do niego właściwości.

var fish = {}; 

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

Pozdrawiam to posortowałem to. I potrzebowałem $ .extend zamiast $ .merge :) – NibblyPig

2

Dla każdego dynamicznego materiału z przedmiotu klucze, potrzebujesz oznaczenia wspornika .

var fish = { }; 

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

Wielowymiarowe tablice w javascript tworzone są poprzez zapisanie tablicy wewnątrz tablicy.

Spróbuj:

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

Fiddle Exampe: http://jsfiddle.net/CyK6E/

5

Wykonaj:

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

To działa, ponieważ można przeczytać & zapisu do obiektów za pomocą notacji kwadratowych nawiasach tak:

my_object[key] = value; 

a to:

alert(my_object[key]); 
Powiązane problemy