This question already has answers here:
Test for existence of nested JavaScript object key
                                
                                    (56个答案)
                                
                        
                                在11个月前关闭。
            
                    
说我有这个对象:

myObj = {
    level1: {
        level2: {
            name: 'Frank'
        }
    }
};


如何使用hasOwnProperty()检查对象的多个深度。像这样的作品:

if (myObj.hasOwnProperty('level1') {
    if (myObj.hasOwnProperty('level2') {
        if (myObj.hasOwnProperty('name') {
            console.log(myObj.level1.level2.name)
        }
    }
}


我希望有这样的东西:

myObj.hasOwnProperty(['level1', 'level2', 'name']);
myObj.hasOwnProperty('level1.level2.name);


我的目标是如果不是所有属性都没有console.log(myObj.level1.level2.name),那么您也可以通过为hasOwnProperty提供替代来回答此问题。

最佳答案

您可以关闭对象并检查键。



const check = o => k => [o.hasOwnProperty(k), o = (o || {})[k]][0];

var myObj = { level1: { level2: { name: 'Frank' } } };

console.log(['level1', 'level2', 'name'].every(check(myObj)));
console.log(['level1', 'level3', 'name'].every(check(myObj)));

关于javascript - 如何在hasOwnProperty中使用多个值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54476087/

10-12 14:07