如何创建自定义的javaScript数组?

时间:2014-02-21 08:22:32

标签: javascript jsp fullcalendar

我有一个小网页应用。我在.jsp文件中使用了日历(来自here FullCalendar的代码)。 我使用Spring mvc架构。因此,当此页面加载了一个负责此页面加载的控制器时,会向calendarEventList添加一个名为model的属性。 'calendarEventList'是ArrayList<calObject>。 calObject是一个包含有关even的详细信息的类。

我可以通过${calEvent.eventID}访问jsp中的这些详细信息,其中calEvent是该ArrayList中的Object。

在FullCalendar中,可以调用事件加载,如下所示

$('#calendar').fullCalendar({
events: [
    {
        title  : 'event1',
        start  : '2010-01-01'
    },
    {
        title  : 'event2',
        start  : '2010-01-05',
        end    : '2010-01-07'
    },
    {
        title  : 'event3',
        start  : '2010-01-09 12:30:00',
        allDay : false // will make the time show
    }
]
});

我想要的就像下面的

$('#calendar').fullCalendar({
   events: //read the `calendarEventList` and create a suitable array 
});

我在title中有startendOblect of the calendarEventList ..详细信息。 所以我想创建我需要提供给fullcalendar的列表。我怎样才能在JS中创建这样一种数组。 它的结构应与示例中给出的[{},{},{},...,{},{}]匹配。 {}包含有关calendarEventList ArrayList中的一个对象的详细信息。

任何详细描述都将受到高度赞赏。

2 个答案:

答案 0 :(得分:1)

如果我真正理解你的问题(你有对象数组,所有对象都包含不同的字段,但每个对象包含title,start(和end))。所以你的任务是过滤这个数组。

解决方案:

function factory(array){
  return array.map(function(item){ 
    var instance = {title: item.title, start: item.start};
    if(item.end) instance.end = item.end;
    return item;
  });
}
var res = factory([{ item: 1, title: 2, start: 4, an: 123, pp: "asdf"}, { item: 2, title: 2, start: 4, end: 5}, { item: 3, title: 2, start: 4}]);

输出将被过滤为具有开始,标题,(结束)字段的对象数组;

尝试demo

答案 1 :(得分:0)

试试我的例子:

 var date = new Date();
 var d = date.getDate();
 var m = date.getMonth();
 var y = date.getFullYear();
 var employees = [];
 employees.push({ id: 111, title: "Testing Event 001", start: new Date(y, m, d-5,10,30) , end: new Date(y, m, d-5,12,30),className: ['yellow-event', 'black-text-event']}); 
 employees.push({ id: 111, title: "Testing Event 002", start: new Date(y, m, d-3,10,30) , end: new Date(y, m, d-3,12,30),className: ['yellow-event', 'black-text-event']}); 
events: employees上的

就像这样, 希望它能帮到满满的。谢谢你......