Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/477.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在hasOwnProperty中使用多个值_Javascript - Fatal编程技术网

Javascript 如何在hasOwnProperty中使用多个值

Javascript 如何在hasOwnProperty中使用多个值,javascript,Javascript,假设我有这个目标: myObj = { level1: { level2: { name: 'Frank' } } }; 如何使用hasOwnProperty()检查对象的多个深度。类似这样的工作原理: if (myObj.hasOwnProperty('level1') { if (myObj.hasOwnProperty('level2') { if (myObj.hasOwnProperty(

假设我有这个目标:

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'}}};
log(['level1','level2','name'].every(check(myObj));

log(['level1','level3','name'].every(check(myObj))您可以在对象上闭合并检查键

const check=o=>k=>o.hasOwnProperty(k),o=(o | |{})[k][0];
var myObj={level1:{level2:{name:'Frank'}}};
log(['level1','level2','name'].every(check(myObj));

log(['level1','level3','name'].every(check(myObj))很好-但不可读:(很好-但不可读:(