专家Javascript迭代

专家Javascript迭代,javascript,Javascript,我想迭代事件列表,但在使用for循环时失败;是否有任何解决方案来循环这部分事件: - events: { - title: listtask[i].libelle_task, - start: listtask[i].date_task, - end: listtask[i].date_end, - url: listtask[i].url_task, - backgroundColor:"#f56954",//red - borderColor: "#f56954"/

我想迭代事件列表,但在使用
for
循环时失败;是否有任何解决方案来循环这部分事件:

- events:  {  
- title: listtask[i].libelle_task, 
- start:  listtask[i].date_task,  
- end: listtask[i].date_end,
- url: listtask[i].url_task, 
- backgroundColor:"#f56954",//red     
- borderColor: "#f56954"//red
-      },


<script type="text/javascript" th:inline="javascript" >
/*<![CDATA[*/
                        var listtask = /*[[${listtask}]]*/[] ; 
                        var i = 0;
                        var lgt = listtask.length;

        $(function() {

            function ini_events(ele) {
                ele.each(function() {

                    var eventObject = {
                        title: $.trim($(this).text())
                    };
                });
            }
            ini_events($('#external-events div.external-event'));

            var date = new Date();

            var d = date.getDate(),
                    m = date.getMonth(),
                    y = date.getFullYear();

            $('#calendar').fullCalendar({

                header: {
                    left: 'prev,next today',
                    center: 'title',
                    right: ''
                },
                buttonText: {
                    today: 'Aujourdhui',

                },
                events: [
for(var i=0;i<lgt;i++)  {
{
                        title: listtask[i].libelle_task,
                        start: listtask[i].date_task,
                        end: listtask[i].date_end,
                        url: listtask[i].url_task,
                        backgroundColor: "#f56954", //red
                        borderColor: "#f56954" //red

                    },
}
                ],

                editable: false,
                droppable: false,
                drop: function(date, allDay) { 


                    $('#calendar').fullCalendar('renderEvent', copiedEventObject, true);


                }
            });



            });


        /*]]>*/
    </script>
-事件:{
-标题:listtask[i]。libelle_任务,
-开始:listtask[i]。日期任务,
-结束:listtask[i]。日期\u结束,
-url:listtask[i]。url\u任务,
-背景颜色:“f56954”//红色
-边框颜色:#f56954//红色
-      },
/**/

关于事件循环,使用IIFE评估对象

events  : listtask.map(function(ele) {
           return  {
             title: ele.libelle_task,
             start: ele.date_task,
             end: ele.date_end,
             url: ele.url_task,
             backgroundColor: "#f56954", //red
             borderColor: "#f56954" //red
          }
        });
顺便说一句:

eventObject
中,这将引用
eventObject
,而不是dom

所以使用

  function ini_events(ele) {

            ele.each(function(el) {

                var eventObject = {
                    title: $.trim($(el).text())
                };
            });
        }


您可以使用†将输入
列表任务
列表转换为
事件
数组,而不是使用for循环:

var listtask = [a, b, c]; // whatever

$('#calendar').fullCalendar({
  // ...
  events: _.map(listtask, function(task) {
    return {
      title: task.libelle_task,
      start: task.date_task,
      end: task.date_end,
      url: task.url_task,
      backgroundColor: "#f56954", //red
      borderColor: "#f56954" //red
    };
  })
  // ...
});


†较新的浏览器以本机方式实现
map
功能。

请格式化您的代码。学习所用语言的基础知识会使您受益匪浅:表达式不能是数组的元素。如何使用push实现这一点?
  function ini_events(ele) {
                ele.each(function() {
                    var self = this;
                    var eventObject = {
                        title: $.trim($(self).text())
                    };
                });
            }
var listtask = [a, b, c]; // whatever

$('#calendar').fullCalendar({
  // ...
  events: _.map(listtask, function(task) {
    return {
      title: task.libelle_task,
      start: task.date_task,
      end: task.date_end,
      url: task.url_task,
      backgroundColor: "#f56954", //red
      borderColor: "#f56954" //red
    };
  })
  // ...
});