【问题标题】:How to pass the java script for loop variable to ${ }?如何将 javascript for 循环变量传递给 ${ }?
【发布时间】:2018-03-22 09:50:36
【问题描述】:
<script >
    document.write("<table border=2 width=50%"); 
    for (var i = 0; i < ${SALE_DATA.SALE_ORDER_ITEMS_LIST.length}; i++) {  
      document.write("<tr>");
      document.write("<td>" + ${SALE_DATA.SALE_ORDER_ITEMS_LIST[i].WEIGHT} + "</td>");
      document.write("<td>" + i + "</td>");
       document.write("</tr>");
    } 
    document.write("</table>"); 
</script>

我正在尝试在${SALE_DATA.SALE_ORDER_ITEMS_LIST[i].WEIGHT} 中传递 i 这里 SALE_DATA 是角度 5 中的常量数组。 但它给出了如下错误

ERROR ReferenceError: i 未定义。 建议我在循环中传递 i 值的方法

如果我保留${SALE_DATA.SALE_ORDER_ITEMS_LIST[0].WEIGHT} 输出如下所示

提前致谢!! out put

【问题讨论】:

标签: javascript jquery html


【解决方案1】:

你可以使用模板文字(``)来创建一个包含动态变量的字符串。

for (var i = 0; i < `${SALE_DATA.SALE_ORDER_ITEMS_LIST.length}`; i++) {
  console.log(i)
}

上面的代码可以正常工作,但不建议以这种方式使用模板文字。

模板文字是允许嵌入表达式的字符串文字。 您可以使用多行字符串和字符串插值功能 他们。在之前的版本中,它们被称为“模板字符串” ES2015 规范。

【讨论】:

  • 是的 for (var i = 0; i ${SALE_DATA.SALE_ORDER_ITEMS_LIST.length}; i++) { console.log(i) } 工作正常,但是当我们尝试在 ${SALE_DATA.SALE_ORDER_ITEMS_LIST[ i].WEIGHT 它产生上述错误......感谢@Nikx 的回复
【解决方案2】:

您可以使用内部迭代器,例如使用 forEach 循环。这将使您无需关心循环的工作方式。

这样的东西可以完成这项工作。

 ${SALE_DATA.SALE_ORDER_ITEMS_LIST}.forEach(function(curVal,i){
      document.write("<tr>");
  document.write("<td>" + curVal.WEIGHT + "</td>");
  document.write("<td>" + i + "</td>");
   document.write("</tr>");
 })

【讨论】:

    猜你喜欢
    • 2021-05-31
    • 1970-01-01
    • 2014-10-05
    • 2017-04-01
    • 1970-01-01
    • 2019-11-29
    • 2021-06-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多