0

我在 for 循环中有一个 if 语句,其中包含多个条件。我想将数据库中的数据与 HTML 表单中的输入数据进行匹配。当表单中的输入字段为空时,它在数据库中存储为空。我itemsSortedByDate[i].FD_MIMO在数据库中有这个 column(),它可以是 null 或者可以有一些值。我无法将数据库中的空白字段与 null 匹配。此外,即使该列(itemsSortedByDate[i].FD_MIMO)在数据库中有一些值,我的 for 循环也会搜索具有空字段的数据库,因为其他字段匹配。我的Javascript如下。最后一个条件是制造问题。ScenarioListViewModel.fdMimo()并且itemsSortedByDate[i].FD_MIMO应该是相同的,无论它是空的还是有一些价值。但是在 console.log 中它们是不同的。感谢您的帮助,非常感谢。

self.getJobIdForCapacity = function(itemsSortedByDate){
            var jobIdForCapacity;
            var found = false;
            for (var i = 0, len = itemsSortedByDate.length; i < len; i++) {
                if(itemsSortedByDate[i].DB_Name == ScenarioListViewModel.db_name() 
                && itemsSortedByDate[i].Split_Mode == ScenarioListViewModel.splitMode() 
                && itemsSortedByDate[i].Full_Output == ScenarioListViewModel.fullOutput() 
                && (itemsSortedByDate[i].Workflow_Status == "Completed" || itemsSortedByDate[i].Workflow_Status == "Running") 
                && (itemsSortedByDate[i].Disposition == "Success" || itemsSortedByDate[i].Disposition == "None") 
                && (itemsSortedByDate[i].FD_MIMO == ScenarioListViewModel.fdMimo() || itemsSortedByDate[i].FD_MIMO == null)){
                    jobIdForCapacity = itemsSortedByDate[i].Title;
                    console.log("Job Id:" + jobIdForCapacity);
                    console.log("fdmimo from form:" +ScenarioListViewModel.fdMimo());
                    console.log("fdmimo from list:" +itemsSortedByDate[i].FD_MIMO);
                    self.getJobResults(jobIdForCapacity);
                    found = true;
                    break;
                }
            }
            if (!found) {
                alert("Job not found in Sharepoint Execution History List. Click Execute Model to run");
            }   
        };
4

1 回答 1

0

我建议您在 if 语句中的所有条件中使用 ===,它可能会帮助您解决问题,因为 === 与 == 之间存在差异。

请参阅此问题以了解差异。

例如:

itemsSortedByDate[i].DB_Name == ScenarioListViewModel.db_name()

将会

itemsSortedByDate[i].DB_Name === ScenarioListViewModel.db_name()

健康)状况:

"Completed" || itemsSortedByDate[i].Workflow_Status == "Running"

将始终返回“Completed”,无论itemsSortedByDate[i].Workflow_Status == "Running"是真还是假。在这里您可以使用三元运算符,例如

itemsSortedByDate[i].Workflow_Status == "Running"? "Running" : "Compelted"

这种东西。像这样检查所有条件。

于 2017-07-31T05:03:02.853 回答