gpt4 book ai didi

javascript - JS 相当于 C++ .at()

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

假设我有一个对象:

var foo = {'bar1': {'baz1':1}};

然后我尝试访问 foo['bar2']['baz2']。如果我只是试图访问 foo['bar2'],JS 将返回 undefined。但是因为我试图在未定义的 bar2 之后获取下一个属性,JS 抛出 TypeError: Cannot read property 'baz2' of undefined.

是否有一些对象的自动访问器在尝试调用其属性之前首先检查 baz2 是否存在于 foo 中?我知道我可以使用 try/catch block 或 if 语句,但我希望有一个类似于 C++ 的 array::at 的函数。 ,那会为我检查。

最佳答案

您可以很容易地编写自己的代码:

function at(obj, property) {
var props = property.split('.');
for(var i = 0; i < props.length; i++) {
if (typeof obj === 'undefined') {
return;
}
obj = obj[props[i]];
}
return obj;
}

var foo = {'bar1': {'baz1':1}};
console.log(at(foo, 'bar1.baz1'));
// => 1
console.log(at(foo, 'bar2.baz2'));
// => undefined

关于javascript - JS 相当于 C++ .at(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17682634/

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