(JavaScript).push不是一个函数

时间:2017-02-21 13:47:00

标签: javascript

该函数使用iCal解析器,它从.ics文件返回未来事件。 eventsParser变量包含所有这些事件。然后我必须将它们推入事件数组中进行显示。但是当我运行它时,我得到了这个错误。我试图弄清楚我有限的js knowladge但没有运气。我还在StacOverflow上检查了几个相同的问题,但没有什么真正帮助我。

function LoadEvents() {
            var events = [];
            var eventsParser = [];
            var ical_file = 'js/sample.ics';

            new ical_parser(ical_file, function(cal){
                //When ical parser has loaded file
                //get future events
                eventsParser = cal.getFutureEvents();
                //console.log(events);
                eventsParser.forEach(function(events){
                    events.push({
                        title: event.SUMMARY,
                        startTime: event.start_time,
                        endTime: event.end_time,
                        allDay: false
                    });
                });
            });
            console.log(events);
            return events;
        }
    });

1 个答案:

答案 0 :(得分:2)

我认为以下行中有一个小错字:eventsParser.forEach(function(event){}。您不能使用两个相同的命名参数。函数试图将元素推入参数内,而不是推入events数组。

请尝试以下代码:



function LoadEvents() {
  var events = [];
  var eventsParser = [];
  var ical_file = 'js/sample.ics';

  new ical_parser(ical_file, function(cal) {
    //When ical parser has loaded file
    //get future events
    eventsParser = cal.getFutureEvents();
    //console.log(events);
    eventsParser.forEach(function(event) {
      events.push({
        title: event.SUMMARY,
        startTime: event.start_time,
        endTime: event.end_time,
        allDay: false
      });
    });
  });
  console.log(events);
  return events;
}