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))代码>很好-但不可读:(很好-但不可读:(