2016-12-02 47 views
-1

我遇到问题。Javascript数组未识别

我有以下的Javascript数组创建:

<script type="text/javascript"> 
     ArrayName['FirstValue']['SecondValue'] = { 
     name = 'checbox_id' 
     checked = true } 
    </script> 

但是当我打电话在全局阵列中这里的函数是一个示例电话:

ArrayName[value1][value2] = true; 

我得到一个消息,说明ArrayName是未定义的。

什么会创建一个类似于上面的数组的正确方法?

谢谢 凯文·拉夫

+4

那么,其中*是* ArrayName定义? – Gavin

+0

让我们从“为什么你想要一个全局数组?”开始吧。 – Makoto

+0

原因我想再次使用它... –

回答

2

您正试图在一个名为ArrayName一个数组,不被任何声明设置元素。

<script type="text/javascript"> 
    // You are attempting to access an array but it hasn't been declared: 
    ArrayName['FirstValue']['SecondValue'] = { 
    name = 'checbox_id' 
    checked = true } 
</script> 

语法表明,这是一个包含嵌套数组的数组,像这样:

var ArrayName = [[1,2,3], [4,5,6], [7,8,9]]; 

所以,如果你想获得的8号,你需要访问第三方阵列元素并获得在数组中的第二个值存储在那里:

// Remember, array indexes start counting from zero 
ArrayName[2][1]; // Get the third element's, second item 

或者(如果我们把你的例子从字面上看,你在哪里寻找文字字符串不是正整数),ArrayName不会是一个数组,它将是一个对象,您正尝试访问属性FirstValue,此属性然后将另一个对象存储为其值,并且该对象具有名为SecondValue的属性。该结构是这样的:

var ArrayName = { 
    'FirstValue' : { 'SecondValue' : something; } 
} 

但是,不知道你要完成,我们不可能帮你写数组或对象。

接下来,我们要谈的是您要分配给数组对象:

{ 
     name = 'checbox_id' 
     checked = true 
} 

此语法不正确。它应该是:

{ 
     name : 'checbox_id', 
     checked : true 
} 
+0

'ArrayName = ['FirstValue'] ['SecondValue'] = {};'不会做你认为它的作用。 –

+4

由于代码实际上是:'ArrayName ['FirstValue'] ['SecondValue'] = { name ='checbox_id'checked = true}'我认为它的确如此。 –