我想知道是否有更简洁的方法来进行空合并和检查未定义?
例如,我有一个变量,我想初始化为可能定义或不定义的对象的属性值,在这种情况下,null是最好的,因为falseyness是一件很棒的事情
function DoWork(){
var foobar =
typeof foo !== "undefined"
? typeof foo["bar"] !== "undefined"
? foo["bar"] || null
: null
: null;
...
}
console.log(JSON.stringify(foobar)); //output is either foo["bar"]'s value or null
你可以看到这变得混乱。我很好奇是否有更好的方法来处理这类事情。
谢谢!
答案 0 :(得分:3)
没有内置语法。像lodash这样的库有深度获取方法,可以解决这个问题:
_.get(x, 'deep.path.property')
以上将返回x.deep.path.property
或undefined
的值,如果任何对象(包括x
)不存在。< / p>
这样的功能并不难写。您可以将其作为思考练习,并获得所需的界面(使用null
代替undefined
),或者您可以查找lodash.get
实施(您需要)跟进一些进口)。