Can't use for loop to fill array in fullcalendar

I need to fill a calendar fullcalendar using javascript, I have these code where data is what I receve from the database, but it send an error:

 var i;
 var events=[];
 var color_hour=[];
 for(i=0;i<data.length;i++){
   if(data[i]['hour_status_id']=="1" || data[i]['hour_status_id']=="2" || data[i]['hour_status_id']=="3"){ color_hour[i]="red"; } else if(data[i]['hour_status_id']=="0"){ color_hour[i]="blue"; }
 }
 events=[
   for(i=0;i<data.length;i++){
    { 
     id : data[i]['medical_agenda_id'], 
     start : data[i]['date']+'T'+data[i]['time_start'], 
     end : data[i]['date']+'T'+data[i]['time_end'], 
     color: color_hour[i],
    },
   }
 ]

It seems like the error is in the for cycle inside the array. Any clues hoy to fix it?

Upvotes: 0

Views: 63

Answers (1)

Syscall
Syscall

Reputation: 19780

You cannot use a for inside an array declaration. You could use Array.push() to add element inside it.

var i;
var events=[];
var color_hour=[];
for(i=0;i<data.length;i++) {
    if(data[i]['hour_status_id']=="1" || data[i]['hour_status_id']=="2" || data[i]['hour_status_id']=="3"){ 
        color_hour[i]="red"; 
    } 
    else if(data[i]['hour_status_id']=="0"){ 
        color_hour[i]="blue"; 
    }
    events.push({ 
        id : data[i]['medical_agenda_id'], 
        start : data[i]['date']+'T'+data[i]['time_start'], 
        end : data[i]['date']+'T'+data[i]['time_end'], 
        color: color_hour[i],
    });
}

Note that the two for doesn't seems to be required and could be done inside only one loop.

Upvotes: 2

Related Questions