在迭代数组咖啡脚本时检查未定义

check for undefined while iterating array coffee script

我正在迭代一个数组,在 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++

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

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

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

其他一些观察:

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

您应该研究 loops & comprehensions 在 coffeescript 中迭代数组而不是使用 while 循环。

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

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