首页 > 解决方案 > Azure 在本地工作的代码上抛出“不是函数”错误

问题描述

因此,我们正在研究上一个小组的一个项目。我们将此代码部署到 Azure。此代码在本地运行良好,但 Azure 抛出错误“application.forEach 不是函数”。下面是它吓坏了的代码片段。

function getProjectWeights(applications) {
var weights = {};
console.log(applications);
applications.forEach(function(application)  {
    switch(Number(application.Preference_Order)) {

        case 1: weights[application.Project_ID] = (
            weights[application.Project_ID] || 0
        ) + 1; break;

        case 2: weights[application.Project_ID] = (
            weights[application.Project_ID] || 0
        ) + 1/2; break;

        case 3: weights[application.Project_ID] = (
            weights[application.Project_ID] || 0
        ) + 1/3; break;
    };
});
return weights;

};

它为其他几个函数抛出了错误,但我想一旦我弄清楚了,这个解决方案就可以应用于其余的函数。

编辑:我能够将对象保存为数组以使 forEach() 函数正常工作。这现在在其他地方引发错误。这是抛出合适的代码......

]).then(function([query, students, projects, applications, assignments]) {
        element = $("#assignment-table");
        template = "./templates/assignment-table.htm";
        renderTemplate(query, template, element).done(function() {

            var weights = getProjectWeights(applications);
            $.each(weights, function(index, weight) {
                var element = $(`#assignment-td-${index}-weight`);
                element.html((Math.round(weight * 100) / 100).toFixed(2));
            });

            if (!assignments.length) {
                var enabled = [
                    $("#assignment-input-min"),
                    $("#assignment-input-max"),
                    $("#assignment-button-minimize"),
                    $("#assignment-button-maximize"),
                    $("#assignment-button-assign"),
                    $("#assignment-button-update"),
                    $("#assignment-button-reset"),
                ]; enableElements(enabled);

错误是“无法读取 null 的属性‘长度’”

标签: javascript

解决方案


推荐阅读