首页 > 解决方案 > 迭代对象

问题描述

我知道这个问题被问了很多次,但我找不到解决方案,我是 jquery 的新手,我正在构建一个日历来显示员工多天的班次。我已经硬编码了标题、开始和结束的值,并且这些代码工作正常。我将从后端获取标题、开始和结束的值。我将获得多个值。所以我必须遍历这些值并传递事件对象中的所有值。

我会得到像

[morningShift,10/09/2018,20/09/2018],[eveningShift,21/09/2018,23/09/2018]

我应该动态传递标题开始日期和结束日期内的值,它应该像这样形成

{
            title: 'morningShift',
            start: new Date('10/09/2018'),
            end: new Date('20/09/2018'),
            className: 'bg-primary'
        },
         {
            title: 'eveningShift',
            start: new Date('21/09/2018'),
            end: new Date('23/09/2018'),
            className: 'bg-primary'
        }

 var calendar = $('#calendar').fullCalendar({
        slotDuration: '00:15:00', /* If we want to split day time each 15minutes */
        minTime: '00:00:00', /* calendar start Timing */
        maxTime: '24:00:00',  /* calendar end Timing */
        defaultView: 'month',  
        handleWindowResize: true,   
        height: $(window).height() - 200,   
        header: {
            left: 'prev,next today',
            center: 'title',
            right: 'month,agendaWeek,agendaDay'
            // right: ''

        },
        events: [
           {
            title: 'Morning Shift',
            start: new Date('10/25/2018'),
            end: new Date('11/05/2018'),
            className: 'bg-primary'
        },

    ],
        editable: true,
        droppable: true, // this allows things to be dropped onto the calendar !!!
        eventLimit: true, // allow "more" link when too many events
        selectable: true,

        select: function (start, end, allDay) {
            $modal.modal({ 
                backdrop: 'static'
            });


            calendar.fullCalendar('unselect');
        }
    });

标签: javascriptjqueryhtmlcalendar

解决方案


new Date(mm/dd/yyyy) 接受这种格式的值。

let apiData = [["morningShift","5/09/2018","10/09/2018"],['eveningShift','1/09/2018','10/09/2018']]
events = apiData.map(([title, start, end])=>({
            title,
            start: new Date(start),
            end: new Date(end),
            className: 'bg-primary'})
          )



console.log(events)


推荐阅读