2010-05-27 4 views
25

Je veux définir un tableau associatif comme celui-citableau associatif de tableaux

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

Essentiellement, je veux être en mesure d'accéder à un tableau de trois numéros en spécifiant l'index personnalisé. Cependant, peu importe ce que j'essaie, je ne peux pas le faire fonctionner.

Je sais que je peux le définir comme:

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

Mais je suis en train de ce ailleurs et je préférerais être en mesure de le mettre en une seule instruction.

Répondre

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

peut faire l'affaire. Vous pouvez alors accéder en utilisant theVar["101"] (ou theVar[101] d'ailleurs).

(Comme var est également a keyword en JavaScript, en utilisant comme un nom de variable est très susceptible de causer des problèmes.)

+0

Ce * est * la façon de créer la js-version d'un tableau associatif. C'est ce qu'on appelle la notation littérale d'objet. –

+0

besoin d'une variable après "var" ou changer le nom du tableau en un mot non réservé – Klaujesi

6

Jetez un oeil à la syntaxe JSON, je pense qu'il pourrait inspirer la construction de structures de données d'une manière qui sera flexible, correcte et complexe comme vous le souhaitez.

This page a beaucoup d'informations et d'exemples qui vous seront utiles.

Par exemple regarder ceci:

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

Ce n'est pas JSON. C'est la notation littérale d'objet - JSON est un ** sous-ensemble ** de ceci. La première prémisse de pouvoir appeler n'importe quoi JSON est qu'il est contenu dans une ** chaîne **. ;) –

+0

On dirait JSON pour moi. Les noms de propriété doivent être des chaînes JSON, mais pas les valeurs. Ou y a-t-il autre chose que tu veux dire? – rob

+1

Jetez un coup d'oeil ici: http://stackoverflow.com/questions/2904131/what-is-the-difference-between-json-and-object-literal-notation –

Questions connexes