2011-03-10 34 views
0

我有一个JavaScript代码,这样的:数组文本数组的JavaScript的

var faqOpener = { 
    defaults: { 
     idSelector: "#id", 
     id: "2" 
    }, 
... 
    if (options && !jQuery.isEmptyObject(options)) 
    $.extend(this.defaults, options); 
... 

我如何转换该变量作为文字数组的数组是这样的:

var faqOpener = { 
    defaults[]: { 
     idSelector: "#id", 
     id: "2" 
    }, 
... 

编辑:我将使用其他JavaScript代码中的默认变量。如示例中所示,它只有一个元素位于数组的阵列上,但是我应该正确地定义它,并且能够传递可变长度(例如,具有3个数组或1个或更多个数组的文字数组的数组) 。

回答

1

试试这个:

var faqOpener = { 
    defaults: [{ 
     idSelector: "#id", 
     id: "2" 
    }], 
... 

可以这样使用:

faqOpener.defaults[0].id 
+0

我先把它塞住:( – 2011-03-10 20:08:45

4
var faqOpener = { 
    defaults: [{ 
     idSelector: "#id1", 
     id: "1" 
    }, 
    { 
     idSelector: "#id2", 
     id: "2" 
    }], 
... 

或直

var defaults = [{ 
    idSelector: "#id1", 
    id: "1" 
}, 
{ 
    idSelector: "#id2", 
    id: "2" 
}]; 

的问题是相当不明确......

+0

+1,如果我没有达到我的每日votecap :) – 2011-03-10 16:18:37

+0

我变得更加清晰。我可以尝试解释更多? – kamaci 2011-03-10 16:19:47

0

这就是俗称的JSON(JavaScript对象符号):

http://www.json.org/example.html

+0

实际上,严格来说,JSON是一种_separate_标记语言,它源自并且模仿Javascript的语法。虽然你是对的,但是这里的语法是相同的。 – 2011-03-10 16:15:57

3
var faqOpener = { 
    defaults: [ 
     { idSelector: "#id", id: "2" }, 
     { idSelector: "#id1", id: "21" } 
    ] 
}; 

然后你就可以在默认访问的对象:

faqOpner.defaults[0] 
faqOpner.defaults[1] 
+0

+1表示:) – Val 2011-03-10 16:13:21

+0

也许“默认”中的项目是巨大的对象 – 2011-03-10 16:15:35

+0

@Mike:那有什么问题? – 2011-03-10 16:19:30

1

你想faqOpener.defaults成为对象的数组{idSelector,ID}?在JS,文字的排列是用方括号分隔的,所以它会是这样的:

var faqOpener = { 
    defaults: [ 
     { 
       idSelector: "#id", 
       id: "2" 
      }, 
      { 
       idSelector: "#id3", 
       id: "3" 
      }, 
     ] 
    }; 

这不是一个数组的数组,准确;它是一组数组联合数组。 JavaScript中的“数组”是一种具有某些特殊特征的特定对象类型。任何旧的JS对象都是一个关联数组。

+0

我编辑了我的问题。 – kamaci 2011-03-10 16:19:16

+0

JS中的任何变量或属性都可以包含对关联数组数组的引用 - 或者更简洁地说,是一组对象;任何JS对象都是一个关联数组。对不起,我应该使用这个术语,并为您节省了一些打字费用!答案给了你的是如何声明一个对象/ AAs的文字数组。如果你已经从别的地方得到了这样的数组,并且你只是想把它分配给一个成员,那这是世界上最简单的事情:faqOpener.defaults = arrayfromwherever; – 2011-03-10 16:35:28