2010-05-27 66 views
25

的关联数组我想这样定义定义阵列

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

基本上我希望能够通过指定定制索引来访问三个数字的阵列关联数组。

但是,无论我尝试什么,我都无法使它工作。

我知道我可以把它定义为:

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

但我设置此别的地方,我宁愿要能够把它在一个单一的声明。

回答

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

可能会诀窍。然后您可以使用theVar["101"](或theVar[101])进行访问。

(如vara keyword在JavaScript中,使用它作为一个变量名是很容易造成问题。)

+0

这是* *创建关联数组的JS版本的方式。它被称为对象文字符号。 – 2010-05-27 22:40:06

+0

“var”后需要一个变量或将数组名改为非保留字 – Klaujesi 2015-08-31 13:43:50

6

看一看的JSON语法,我觉得它可以激发你的数据结构的建设按照您想要的方式灵活,正确和复杂。

This页面有很多信息和示例对您有所帮助。

例如看看这个:

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

这不是JSON。这是对象文字符号--JSON是**的子集**。 能够调用任何JSON的第一个前提是它包含在**字符串**中。 ;) – 2010-05-27 22:38:50

+0

对我来说看起来像JSON。属性名称必须是正确的JSON字符串,但值不能。还是有什么你的意思? – rob 2010-05-28 01:10:10

+1

看看这里:http://stackoverflow.com/questions/2904131/what-is-the-difference-between-json-and-object-literal-notation – 2013-12-11 12:59:26