【问题标题】:check for undefined while iterating array coffee script在迭代数组咖啡脚本时检查未定义
【发布时间】:2019-03-23 17:59:55
【问题描述】:

我正在迭代一个数组,在 CoffeeScript 中迭代时出现undefined 变量错误。我不太确定在 CoffeeScript 中迭代数组时如何检查未定义。

请在下面找到我的代码。

  i=0
  while Program.flatPercentageDiscountByMajorClass.length
    var 
    if typeof Program.flatPercentageDiscountByMajorClass[i].majorClass == 'undefined'  // this line is not working. throwing Undefined error
      FlatPercentageFlag = true
    else
      PdpTableFlag = true
    break  
    i++

【问题讨论】:

    标签: javascript coffeescript


    【解决方案1】:

    要检查咖啡脚本中的undefined 元素,您可以像这样使用三元运算符。

    Flag = if typeof Program.flatPercentageDiscountByMajorClass[i].majorClass != 'undefined' then false else true 
    

    【讨论】:

      【解决方案2】:

      我猜Program.flatPercentageDiscountByMajorClass[i]undefined,尝试访问其上的majorClass 属性会引发错误。

      您可以在 coffeescript 中使用existential operator 来避免这种情况。

      if typeof Program.flatPercentageDiscountByMajorClass[i]?.majorClass == 'undefined'  
      // The existential operator goes before the dot  ------^ 
      

      其他一些观察:

      var 未在咖啡脚本中使用。我真的不确定你想用这个循环实现什么。 break 意味着您只会执行一次迭代 - 这只是为了调试目的吗?

      您应该查看loops & comprehensions 以在coffeescript 中迭代数组,而不是使用while 循环。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-06-26
        • 2013-06-10
        • 2013-09-08
        • 1970-01-01
        • 1970-01-01
        • 2012-05-14
        • 2016-06-20
        • 1970-01-01
        相关资源
        最近更新 更多