gpt4 book ai didi

javascript - 安全合并 JavaScript 子属性

转载 作者:行者123 更新时间:2023-11-29 19:07:41 25 4
gpt4 key购买 nike

我想知道是否有更简洁的方法来执行空合并和检查未定义?

例如,我有一个变量,我想将其初始化为可能已定义或 undefined object 的属性值,在这种情况下,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

如您所见,这变得很困惑。我很好奇是否有更好的方法来处理这种事情。

谢谢!

最佳答案

没有内置语法。像 lodash 这样的图书馆有解决这个问题的深度获取方法:

_.get(x, 'deep.path.property') 

以上将返回 x.deep.path.property 的值,或者 undefined 如果 any 一路上的对象,包括x,不存在。

这样的函数不难写。您可以将此作为一种思考练习,并获得您想要的接口(interface)(使用 null 而不是 undefined),或者您可以查找 lodash.get实现(您需要遵循一些导入)。

关于javascript - 安全合并 JavaScript 子属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41621127/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com