2015-02-08 127 views
0

我最近已經進入了JavaScript(大約四天前),並且我遇到了麻煩,有點適應語法。我正在創建一個日曆,我試圖在我的「主」對象 - 日曆中聲明一個對象數組(每月一個)。我已經做了大量的搜索和瀏覽W3School的所有內容,似乎無法弄清楚。所以,如果我有聲明另一個對象內的對象陣列

var calender = { 
: 
:...functions{}, 
months: [], 

我將如何去獲得的months內的對象和宣佈他們的屬性(即months[0]將有「一」的名稱和它的天數等)?我處於概念上的癱瘓狀態。我是否通過索引來完成這個索引,或者我可以在數組創建時直接聲明這些對象嗎?從我到目前爲止所掌握的情況來看,通常我可以只說一些類似var arr = {varName: "name",...(and so on)}的東西,但它似乎在括號內是不允許的,而且我不能確定從哪裏訪問索引的語法。或者,也許我只是在做這個完全的低音贊助。任何指導將不勝感激。謝謝

回答

2

單程;陣列中的對象文本:

var calendar = { 

    months: [ 
     { 
      name : "Jan", 
      days : 31 
     }, 
     { 
      name : "Feb", 
      days : "28ish" 
     } 
    ] 
}; 

alert(calendar.months[0].days); 
+0

這正是我正試圖做!謝謝。所以基本上這些指數在某種意義上作爲'var'的名字?或者以這種方式觀看它會不好? – 2015-02-08 19:21:58

+0

最好將它們視爲鍵/值對。 'calendar'有一個鍵'month',它有一個數組作爲它的值。反過來,該數組有兩個對象,每個對象都具有'name'和'days'值。 – Andy 2015-02-08 19:30:23

+0

(IMO)你應該將一個Array(個月)視爲一個*單個實體*(一個變量,或者在一個對象屬性的上面的例子中),它是一個包含存儲和訪問的值的列表數字索引 – 2015-02-08 19:31:01

0

讓我們回到基礎,這是你可以寫文字對象,數組和包括含有包含數組對象數組對象:

var my_object = {key1: "value1", key2: "value2"}; 
console.log(my_object.key1); 

var my_array = ["value1", "value2"]; 
console.log(my_array[0]); 

var my_compound = {a: [{b: "c", d: [0, 1, 2]}, 
         {b: "e", d: [3, 4, 5]}]}; 
console.log(my_compound.a[1].d[0]); // => 3 
console.log(my_compound["a"][1]["d"][0]); // same thing, perhaps more readable?