动态构建数组

时间:2018-08-14 04:40:08

标签: javascript jquery sharepoint

我在JavaScript中有一个循环,可从SharePoint列表中提取数据,而我想做的是使用caleander.js插件从此列表中为这些事件建立日历视图。

我被卡住的地方是插件接受和数组,而我正尝试从列表数据中动态构建该数组。

例如

function getSuperRegionNames(xData, status) 
{

    var events = "";
    alert("entered loop")

    //Iterates through each row and returns information - Populates the "Super Region Full Name" dropdown with values from the Super Region list
    $(xData.responseXML).find("z\\:row").each(function() 
    {  
        var ID = $(this).attr("ows_ID");
        var Title = $(this).attr("ows_Title");
        var AssignedTo = $(this).attr("ows_AssignedTo");
        var Description = $(this).attr("ows_Body");

        var aStartdate = $(this).attr("ows_DueDate");

        var Status = $(this).attr("ows_Status");
        var Priority = $(this).attr("ows_Priority");

        var aDueDate = $(this).attr("ows_DueDate");
                var bDueDate = moment(aDueDate).format('DD/MM/YYYY');
                var bYear = moment(aDueDate).year();
                var bMonth = moment(aDueDate).month();
                var bDate = moment(aDueDate).date();
        var select = "<a class='btn btn-s btn-success'  style='width:150px' target='_blank' href='registrationselect.aspx?id="+ID+"'>View Detail</a>";

        //events.push({'Date': new Date(bYear, bMonth, bDate), 
        //          'Title': Title, 
        //          'Link': ID, 
        //          'Status': Status, 
        //          'AssignedTo': AssignedTo, 
        //          'Priority': Priority},
        //          });


        var appendThis = "{'Date': " + new Date(bYear, bMonth, bDate) + ", 'Title': " + Title +", 'Link': " + ID + ", 'Status': " + Status + ", 'AssignedTo': " + AssignedTo + ", 'Priority': " + Priority + "},";
        events = events + appendThis;
        alert(appendThis);          

        $("#results").append("<tr style='border-bottom:thin gray solid' align='middle'>" +
        "<td align='left' style='padding:10px'>"+ID+"</td>" +
        "<td align='left' style='padding:10px'>"+Title+"</td>" +
        "<td align='left' style='padding:10px'>"+AssignedTo+"</td>"  +                                         
        "<td align='left' style='padding:10px'>"+Description+"</td>"  +   
        "<td align='left' style='padding:10px'>"+bDueDate+"</td>" +
        "<td align='left' style='padding:10px'>"+Status+"</td>" +
        "<td align='left' style='padding:10px'>"+Priority+"</td>"  +                                         
        "<td align='left' style='padding:10px'>"+bYear+"</td>"  + 
        "<td align='left' style='padding:10px'>"+select+"</td>"  + 
        "</tr>");
    });

    alert(events);
    var loadEvents = [
        events
    ];
    var settings={}       
    var element = document.getElementById('caleandar');
    caleandar(element, loadEvents, settings);

}

您可以在最后一节中看到我正在尝试获取一个字符串,并“神奇地”从中创建一个数组,但是我显然在这个想法上走错了轨道。

是否有人在遍历列表时如何从值列表构建数组?

谢谢, 格雷格

1 个答案:

答案 0 :(得分:0)

您可以通过多种方式创建动态数组,最简单的方法之一如下:

arg_list = ['one', 'two', ..., 'ten']
form_list = [Form(arg=arg_list[i]) for i in range(10)]


放入“ arr = [];”在循环之外,在循环中使用休息代码,并检查阵列是否准备就绪。