2015-02-08 2 views
0

Я недавно получил javascript (около четырех дней назад), и у меня возникли проблемы, приспосабливающиеся к синтаксису. Я создаю каландр, и я пытаюсь получить массив объектов (один за каждый месяц), который будет объявлен в моем «основном» объекте - календаре. Я делал много гуглинга и просматривал все W3Schools и, похоже, не понял его. Так что, если у меня естьОбъявление массивов объектов в другом объекте

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

Как бы я идти о получении объектов внутри months и объявляя их свойства (т.е. months[0] будет иметь название «января» и его количество дней и т.д.)? Я нахожусь в концептуальном молчании. Выполняю ли я этот индекс по индексу или могу ли я просто объявить объекты при создании массива? Из того, что я до сих пор понял, казалось бы, я мог бы просто сказать что-то вроде var arr = {varName: "name",...(and so on)}, но похоже, что это в скобках не разрешено, и я не уверен, синтаксически, когда я обращаюсь к индексам. Или, может быть, я просто делаю это полностью бас. Любое руководство будет высоко оценено. Thanks

ответ

2

В одну сторону; объектные литералы в пределах массива:

var calendar = { 

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

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

Это именно то, что я пытался это сделать! Спасибо. Итак, в основном индексы служат в качестве имени 'var' в некотором смысле? Или плохо смотреть на это так? –

+0

Лучше всего рассматривать их как пары ключ/значение. 'calendar' имеет один ключевой« месяц », который имеет массив как его значение. В свою очередь, этот массив имеет два объекта, каждый из которых имеет значения «имя» и «дни». – Andy

+0

Вид, (IMO), вы должны думать о массиве (месяцах) как о едином объекте * (переменная или в примере выше свойства объекта), который представляет собой список, содержащий значения, которые хранятся и доступны числовой индекс –

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? 
Смежные вопросы