2015-11-14 6 views
0

У меня есть массив объектов:Получить значение свойства объекта внутри массива объектов

var ads = [ 
{ 
    adName: "Football Team", 
    adText: ["....","...."], 
    adImg: ["images/img1.png", "images/img2.png", "", "", ""], 
    adPreviewLink: "templateA", 
    adSeconds: 15, 
    adTime: ad1Time 
},{ 
    adName: "Basketball Team", 
    adText: ["...","..."], 
    adImg: ["images/img-b1.png", "images/img-b2.png", "", "", ""], 
    adPreviewLink: "templateB", 
    adSeconds: 10, 
    adTime: ad2Time 

}]; 

adTime свойство также объект:

var ad1Time = { 
    hours: ["6","12"], 
    day: [weekdaysEnum.monday, weekdaysEnum.wednsday], 
    month: [monthEnum.march, monthEnum.april], 
    year: 2016, 
    daysNumber: [] 
} 

теперь я хочу, чтобы проверить adTime >> год, но я получаю сообщение об ошибке.

Uncaught TypeError: Cannot read property 'year' of undefined

Вот как я попытался проверить свойство:

var date = new Date(); 
var now_day = date.getDate(); 
var now_month = date.getMonth(); 
var now_year = date.getFullYear(); 

for (var i = 0; i < ads.length; i++) { 
    if (ads[i].adTime.year == now_year) { 
     for(var index_month; index_month < ads[i].adTime.month.length; index_month++) 
     { 
      if(ads[i].adTime.month[index_month] == now_month) 
       console.log(ads[i].adName); 
     } 
    } 

} 

Так где же ошибка (здесь ошибка: объявления [я] .adTime.year)? Благодарю.

+0

определяется ad2Time? –

+0

да, конечно. он выглядит так же, как код ad1Time –

+0

выглядит хорошо. Можете ли вы создать plunkr? Или, может быть, поделиться данными ... –

ответ

2

Перед «объявлениями» вам нужно определить «ad1Time» и «ad2Time».

Смежные вопросы