说我有这个对象:
myObj = {
level1: {
level2: {
name: 'Frank'
}
}
};
Run Code Online (Sandbox Code Playgroud)
如何使用hasOwnProperty()检查对象的多个深度.像这样的东西有效:
if (myObj.hasOwnProperty('level1') {
if (myObj.hasOwnProperty('level2') {
if (myObj.hasOwnProperty('name') {
console.log(myObj.level1.level2.name)
}
}
}
Run Code Online (Sandbox Code Playgroud)
我希望有类似的东西:
myObj.hasOwnProperty(['level1', 'level2', 'name']);
myObj.hasOwnProperty('level1.level2.name);
Run Code Online (Sandbox Code Playgroud)
我的目标是,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)));Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
79 次 |
| 最近记录: |