Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   как заполнить объект через цикл? (https://javascript.ru/forum/jquery/24408-kak-zapolnit-obekt-cherez-cikl.html)

daniel20 28.12.2011 20:08

как заполнить объект через цикл?
 
Здравствуйте!
Вопрос может быть и очень простой, но я новичек в javascipt и JQUERY, прошу сильно не ругать.
Хочу создать обьект, через цикл, следующего содержания:
{
         events : [
            {
               "id":1,
               "start": new Date(year, month, day, 12,15),
               "end": new Date(year, month, day, 13, 30),
               "title":"Lunch with Mike"
            },
            {
               "id":2,
               "start": new Date(year, month, day, 14),
               "end": new Date(year, month, day, 14, 45),
               "title":"Dev Meeting"
            }
         ]
      }

пишу вот так:
$.each(obj, function(index, value) { 
          date_time     = value.DateStart.split(' ');
          date          = date_time[0].split('-');
          time          = date_time[1].split(':');
          year_start    = date[0];
          month_start   = date[1];
          day_start     = date[2];
          hour_start    = time[0];
          minute_start  = time[1];
          
          date_time     = value.DateEnd.split(' ');
          date          = date_time[0].split('-');
          time          = date_time[1].split(':');
          year_end      = date[0];
          month_end     = date[1];
          day_end       = date[2];
          hour_end      = time[0];
          minute_end    = time[1];

          if(elements != undefined){
              elements = {
                   "id":value.ReminderID,
                   "start": new Date(year_start, month_start-1, day_start , hour_start, minute_start),
                   "end": new Date(year_end, month_end-1, day_end, hour_end, minute_end),
                   "title":value.Title,
                   "body":value.Body
                } 
          }else{
              elements = {
                   "id":value.ReminderID,
                   "start": new Date(year_start, month_start-1, day_start , hour_start, minute_start),
                   "end": new Date(year_end, month_end-1, day_end, hour_end, minute_end),
                   "title":value.Title,
                   "body":value.Body
                } 
          }
        });
      return {
         events : [
            elements
         ]
        };

Вопрос: как я должен присваивать переменной
elements
значения, чтоб не выдавало только последнее значение.
пробовал вот так:
elements += {
                   "id":value.ReminderID,
                   "start": new Date(year_start, month_start-1, day_start , hour_start, minute_start),
                   "end": new Date(year_end, month_end-1, day_end, hour_end, minute_end),
                   "title":value.Title,
                   "body":value.Body
                }

и так:
[JS]elements += {
                   "id":value.ReminderID,
                   "start": new Date(year_start, month_start-1, day_start , hour_start, minute_start),
                   "end": new Date(year_end, month_end-1, day_end, hour_end, minute_end),
                   "title":value.Title,
                   "body":value.Body
                }+','

[/JS]
ни один вариант не идет.

daniel20 29.12.2011 11:22

спасибо.


Часовой пояс GMT +3, время: 09:16.