如果我有一个对象的引用:
var test = {};
Run Code Online (Sandbox Code Playgroud)
可能(但不是立即)有嵌套对象,如:
{level1: {level2: {level3: "level3"}}};
Run Code Online (Sandbox Code Playgroud)
在最深层嵌套的对象中测试密钥是否存在的最佳方法是什么?
alert(test.level1);收益率undefined,但alert(test.level1.level2.level3);失败了.
我现在正在做这样的事情:
if(test.level1 && test.level1.level2 && test.level1.level2.level3) {
alert(test.level1.level2.level3);
}
Run Code Online (Sandbox Code Playgroud)
但我想知道是否有更好的方法.
可能重复:
使用字符串键访问嵌套的JavaScript对象
也许标题不够明确,我只是不知道如何指定我正在寻找的东西,我的英语真的很糟糕,抱歉.
我正在尝试创建返回对象值的函数,但也可以使用嵌套对象.例如:
var obj = {
foo: { bar: 'baz' }
};
Run Code Online (Sandbox Code Playgroud)
我想通过将字符串"foo.bar"提供给函数来访问obj.foo.bar的值.
function(obj, path) {
// Path can be "foo.bar", or just "foo".
}
Run Code Online (Sandbox Code Playgroud)
谢谢!
我必须检查对象是否未定义,但是当我这样做时
typeof myUnexistingObject.myUnexistingValue == 'undefined'
Run Code Online (Sandbox Code Playgroud)
我收到这个错误
Uncaught ReferenceError: myUnexistingObject is not defined
Run Code Online (Sandbox Code Playgroud)
那么,如何检查未定义的对象或属性?