2011-03-10 36 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