在迭代数组咖啡脚本时检查undefined

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在迭代数组咖啡脚本时检查undefined相关的知识,希望对你有一定的参考价值。

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

请在下面找到我的代码。

  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++
答案

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

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

我猜想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的主要内容,如果未能解决你的问题,请参考以下文章

迭代咖啡脚本中的方法名称[重复]

为啥在咖啡脚本的每个块的末尾都需要一个“未定义”?

本地和全球范围的咖啡脚本[重复]

CoffeeScript 未定义

过滤咖啡脚本中的记录数组以返回年龄> 50的所有记录

构建咖啡脚本代码?