尝试在JavaScript数组上的forEach循环中使用嵌套的if语句

时间:2019-05-21 08:06:38

标签: javascript arrays

我正在尝试在另一个if语句中使用if语句,但我根本无法弄清楚如何使第二条if语句起作用。第二条if语句将所有样式更改应用于数组中的第一个元素(学校)。我想第二条if语句根据json数据([school.status])将正确的样式应用于数组中的所有项目。

我尝试切换到for语句,尝试移动if语句并将其嵌套不同,尝试异步并将公式的不同部分移入和移出代码块。我尝试在追加之后运行第二条forEach语句,但是我也无法使它正常工作。我认为除了代码部分之外,我还缺乏对这个过程的工作方式的理解,但更多的是逻辑运算符,并且经过数小时的寻找一个直接答案,并且几乎是凌晨4点,我想我只是在这里问。 / p>

schools.forEach(function(school, index) {
  dashboardItemStatus = $(".dashboard-item-status");
  if (App.hasClass("mainDash")) {
    App.append(
      '<div class="dashboard-item"><h5 class="mb-1">' +
        [school.name] +
        "</h5>" +
        '<p style="margin-bottom: -2px">' +
        [school.address.street] +
        "</p>" +
        '<p style="margin-bottom: -2px">' +
        [school.address.city] +
        "," +
        " " +
        [school.address.state] +
        " " +
        [school.address.zip] +
        "</p>" +
        '<p style="margin-bottom: -2px">' +
        [school.phone] +
        "</p>" +
        '<p style="margin-bottom: -2px">' +
        [school.principal] +
        "</p>" +
        '<p style="margin-top: 8px;background-color: #FFF;padding: 8px 14px;border-radius: 5px;" class="dashboard-item-status" id="dashboardItemStatus">' +
        [school.status] +
        "</p>" +
        "</div>"
    );
  }
  if (school.status == "Normal Operation") {
    dashboardItemStatus.addClass("dashboard-item-status-normal");
  } else if (school.status == "Full Change") {
    dashboardItemStatus.addClass("dashboard-item-status-change");
  }
});

因此,我认为预期结果是在以下任何一种状态为“完全更改”时,将应用dashboard-item-status-change类,并且将dashboard-item-status-normal类应用于具有以下状态的任何状态: “普通手术”。该数据是一个来自json文件的数组。那部分工作正常。 forEach函数可以正常工作,并且信息可以在屏幕上正确显示。现在,我需要能够根据状态本身来影响分别显示状态的元素。现在,如上所述,无论我试图影响什么状态,均会在数组的第一个元素上发生更改,我想这是有道理的,但我不知道如何解决。如果我在第二条if语句中console.log()学校的名称和状态,它们将正确显示,因此我知道我可以找到正确的值,只是不知道如何影响它们。也许地图或某些方法可能有效,但老实说我不知道​​如何正确使用它。任何帮助都非常感谢。

0 个答案:

没有答案