Jus*_*ago 25 javascript object
有没有比使用更简单的方法___ in object检查对象的每个级别的存在来检查单个成员的存在?
更简洁:我如何检查someObject.member.member.member.value是否存在?
Fel*_*ing 33
通常,您可以使用if(property in object),但这对于嵌套成员来说仍然很麻烦.
你可以写一个函数:
function test(obj, prop) {
var parts = prop.split('.');
for(var i = 0, l = parts.length; i < l; i++) {
var part = parts[i];
if(obj !== null && typeof obj === "object" && part in obj) {
obj = obj[part];
}
else {
return false;
}
}
return true;
}
test(someObject, 'member.member.member.value');
Run Code Online (Sandbox Code Playgroud)
小智 7
你还可以尝试/捕获TypeError?
try {
console.log(someObject.member.member.member.value);
} catch(e) {
if (e instanceof TypeError) {
console.log("Couldn't access someObject.member.member.member.value");
console.log(someObject);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12312 次 |
| 最近记录: |