未捕获的类型错误:无法读取未定义的属性(读取“爱好”)

OMG*_*ula 4 javascript sharepoint for-loop

我遇到了一个有趣的问题,这让我陷入了困境。我正在执行一个 Sharepoint RestAPI 调用,该调用可以正确返回数据,当我对数据运行 for 循环时,它会构建出 html,但仍然会抛出我用作标题的错误。代码如下。如果我控制台记录每个循环,它将返回值。HTML 也可以正常工作。问题是错误仍然出现。

function getSlideData() {
    var query = "$expand=AttachmentFiles&$select=Title,Team,State,Location,Hobbies,Favorite,Askme,GreatPlace,imageFact,ImageText,Attachments,AttachmentFiles&$expand=AttachmentFiles&$top=1000&$orderby=Created desc&$filter=Display eq 'Active'";
    var svcUrl = SITE_URL + "_api/web/lists/getbytitle('"+LIST_NAME+"')/items?"+query;
    var employeeData;

    $.ajax({
        url: svcUrl,
        type: "GET",
        headers: { "Accept": "application/json; odata=verbose" },
        async: false,
        success: function (data) {
            employeeData = data.d.results;
        },
        error: function (xhr) {
            alert("Can't get list items.", xhr.status + ": " + xhr.statusText); 
        }
    });

    return employeeData;
}

function buildSlides() {
    var slideData = getSlideData();
    var sliderWrapper = $('#slider-wrapper');
    var sliderWrapperContent = "";

    for(i=0;i<=slideData.length;i++) {
        sliderWrapperContent += '<div><h2>'+slideData[i].Hobbies+'</h2></div>';
        sliderWrapper.html(sliderWrapperContent);
    }
}
Run Code Online (Sandbox Code Playgroud)

小智 5

错误是您试图访问数组中不存在的索引,因为 for 循环中的 <= ,当您使用数组的 .length 时尝试使用 < 。