如何在coffeescript中链接存在运算符

时间:2015-03-05 06:08:53

标签: javascript coffeescript

假设我在coffeescript中有如下对象引用:

object.param.foo.bar

我要验证该栏是否存在?我该怎么做?

我相信object.param.foo?.bar测试foo的存在,如果它不存在则返回undefined,但object.param.foo.bar?将整个表达式转换为布尔测试。

我想要的是如果它存在则返回object.param.foo.bar,如果不存在则返回undefined

2 个答案:

答案 0 :(得分:3)

我认为你正在寻找表达式

object.param?.foo?.bar

假设object存在,如果undefined.param.foo属性不存在,则会返回.bar。如果你知道它们确实存在,你可以省略?

答案 1 :(得分:1)

我不确定我理解你的问题(object.param.foo?.bar如何做你想做的事?你没有告诉我们。)。

但是如果你想要全程执行空检查(如果objectobject.paramobject.param.bar为空),你可以使用:

bar = object?.param?.foo?.bar

如果此链上的任何内容为null或未定义,则会生成undefined,如果存在,则生成object.param.foo.bar的值。