2010-05-27 27 views
25

voglio definire un array associativo similiDefinire array associativo di array

var theVar = [ 
    { "100", [0, 1, 2] }, 
    { "101", [3, 4, 5] } 
] 

Essenzialmente voglio essere in grado di accedere a una matrice di tre numeri specificando l'indice personalizzato.

Tuttavia, indipendentemente da ciò che provo, non riesco a farlo funzionare.

So che posso definirlo come:

theVar["100"] = [0, 1, 2]; 
theVar["101"] = [1, 2, 3]; 

Ma io pongo questo da qualche altra parte e io preferirei essere in grado di metterlo in una singola istruzione.

risposta

31
theVar = { 
    "100": [0, 1, 2], 
    "101": [3, 4, 5] 
} 

potrebbe fare il trucco. È quindi possibile accedere utilizzando theVar["101"] (o theVar[101] per quella materia).

(Come var è anche a keyword in JavaScript, usandolo come un nome di variabile è molto probabile che a causare problemi.)

+0

Questo * è * il modo per creare il JS-versione di un array associativo. Si chiama Object Literal Notation. –

+0

necessita di una variabile dopo "var" o cambia il nome dell'array in una parola non riservata – Klaujesi

6

Dai un'occhiata alla sintassi JSON, penso che potrebbe ispirare la costruzione delle vostre strutture dati in un modo che sarà flessibile, corretto e complesso come vuoi.

This pagina ha un sacco di informazioni e di esempio che sono utili per voi.

Per esempio un'occhiata a questo:

var employees = { "accounting" : [ // accounting is an array in employees. 
            { "firstName" : "John", // First element 
             "lastName" : "Doe", 
             "age"  : 23 }, 

            { "firstName" : "Mary", // Second Element 
             "lastName" : "Smith", 
             "age"  : 32 } 
            ], // End "accounting" array.         
        "sales"  : [ // Sales is another array in employees. 
            { "firstName" : "Sally", // First Element 
             "lastName" : "Green", 
             "age"  : 27 }, 

            { "firstName" : "Jim", // Second Element 
             "lastName" : "Galley", 
             "age"  : 41 } 
            ] // End "sales" Array. 
       } // End Employees 
+6

Questo non è JSON. Questa è Object Literal Notation - JSON è un ** sottoinsieme ** di questo. La prima premessa di poter chiamare qualsiasi cosa JSON è che è contenuta in una ** stringa **. ;) –

+0

Sembra JSON per me. I nomi delle proprietà devono essere stringhe per essere JSON corretti, ma i valori no. O c'è qualcos'altro che intendi? – rob

+1

Dai un'occhiata qui: http://stackoverflow.com/questions/2904131/what-is-the-difference-between-json-and-object-literal-notation –

Problemi correlati