带嵌套IF语句的FOR LOOP

时间:2019-11-18 15:30:11

标签: javascript html for-loop

我有一些代码遍历数组并将数据添加到HTML表中。

对于“ Unit_Sell”字段之一,我想在HTML前面加上“£”符号。

这是我尝试过的。

 for (var i = 0; i < arr.length; i++) {
   var node = win.document.createElement("tr")

   for (var key of ['description', 'ref_date_start', 'ref_date_end', 'unit_sell', 'qty', 'price']) {
     var tb = win.document.createElement("td")

     if (key = 'unit_sell') {
       tb.innerHTML = '£' + arr[i][key]
     }

     tb.innerHTML = arr[i][key]
     tb.style.paddingLeft = "30px";
     node.appendChild(tb)
   }
 }

该循环工作正常,但不满足if语句条件。

3 个答案:

答案 0 :(得分:2)

正如已经指出的那样,您需要将key'unit_sell'进行比较,而不是进行分配。但是,您还需要一个else分支,否则条件中的innerHTMl将被覆盖。

for (var i = 0; i < arr.length; i++) {
  var node = win.document.createElement("tr")

  for (var key of ['description', 'ref_date_start', 'ref_date_end', 'unit_sell', 'qty', 'price']) {
    var tb = win.document.createElement("td")

    if (key === 'unit_sell') {
      tb.innerHTML = '£' + arr[i][key]
    } else {
      tb.innerHTML = arr[i][key]
    }

    tb.style.paddingLeft = "30px";
    node.appendChild(tb)
  }
}

答案 1 :(得分:0)

这是比较的问题。您输入:

if (key = 'unit_sell') {

应该在什么时候出现:

if (key == 'unit_sell') {

编写方式是使用赋值而不是比较

答案 2 :(得分:0)

   if (key == 'unit_sell') {
        tb.innerHTML = '£' + arr[i][key]
    }

还有一个很棒的JS教程 https://github.com/getify/You-Dont-Know-JS