2010-05-27 20 views
25

Chcę zdefiniować tablicę asocjacyjną jak tenDefiniowanie asocjacyjną tablic

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

Zasadniczo chcę być w stanie uzyskać dostęp tablicę trzech liczb, określając indeks niestandardowy.

Jednak bez względu na to, co próbuję, nie mogę sprawić, żeby działało.

wiem, że mogę ją określić jako:

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

Ale ja ustawienie to gdzieś indziej, a wolałbym, aby móc ustawić go w jednym rachunku.

Odpowiedz

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

może załatwić sprawę. Możesz wtedy uzyskać dostęp, używając theVar["101"] (lub theVar[101]).

(Jak var jest również a keyword w JavaScript, używając go jako nazwy zmiennej jest bardzo prawdopodobne, aby powodować problemy.)

+0

To * jest * sposób, aby utworzyć JS-wersję tablicy asocjacyjnej. Nazywa się Object Literal Notation. –

+0

potrzebujesz zmiennej po "var" lub zmień nazwę tablicy na niezarezerwowane słowo – Klaujesi

6

Zapraszamy do obejrzenia składni JSON, myślę, że może ona inspirować budowę swoich struktur danych w sposób, który będzie elastyczny, poprawny i złożony, jak chcesz.

This strona zawiera wiele przydatnych informacji i przykładów.

Na przykład spojrzeć na to:

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

To nie jest JSON. Jest to Object Literal Notation - JSON to ** podzbiór ** tego. Pierwszym warunkiem, że można wywołać wszystko, co JSON, jest to, że zawiera się w ** ciągu **. ;) –

+0

Wygląda dla mnie JSON. Nazwy właściwości muszą być ciągami, aby były poprawne JSON, ale wartości nie. Czy jest jeszcze coś, co masz na myśli? – rob

+1

Spójrz tutaj: http://stackoverflow.com/questions/2904131/what-is-the-difference-between-json-and-object-literal-notation –

Powiązane problemy