如何在 coffeescript 中链接存在运算符
how to chain the existential operator in coffeescript
假设我在 coffeescript 中有一个对象引用,如下所示:
object.param.foo.bar
我想验证该栏是否存在?我该怎么做?
我相信 object.param.foo?.bar
测试 foo
是否存在,如果不存在则返回 undefined
,但是 object.param.foo.bar?
将整个表达式转换为布尔值测试。
我想要的是 returns 如果存在 object.param.foo.bar
如果不存在 undefined
我认为您正在寻找表达式
object.param?.foo?.bar
假定 object
存在,并且如果 .param
、.foo
或 .bar
属性不存在,则将 return undefined
'存在。如果您知道 ?
确实存在,则可以省略它们。
我不确定我是否理解你的问题(object.param.foo?.bar
怎么没有按照你的要求去做?你还没告诉我们。)。
但是如果你想全程执行null检查(如果object
、object.param
或object.param.bar
为null),你可以使用:
bar = object?.param?.foo?.bar
如果此链中的任何内容为 null 或未定义,这将生成 undefined
,如果存在 object.param.foo.bar
的值。
假设我在 coffeescript 中有一个对象引用,如下所示:
object.param.foo.bar
我想验证该栏是否存在?我该怎么做?
我相信 object.param.foo?.bar
测试 foo
是否存在,如果不存在则返回 undefined
,但是 object.param.foo.bar?
将整个表达式转换为布尔值测试。
我想要的是 returns 如果存在 object.param.foo.bar
如果不存在 undefined
我认为您正在寻找表达式
object.param?.foo?.bar
假定 object
存在,并且如果 .param
、.foo
或 .bar
属性不存在,则将 return undefined
'存在。如果您知道 ?
确实存在,则可以省略它们。
我不确定我是否理解你的问题(object.param.foo?.bar
怎么没有按照你的要求去做?你还没告诉我们。)。
但是如果你想全程执行null检查(如果object
、object.param
或object.param.bar
为null),你可以使用:
bar = object?.param?.foo?.bar
如果此链中的任何内容为 null 或未定义,这将生成 undefined
,如果存在 object.param.foo.bar
的值。