【发布时间】:2016-01-31 09:27:14
【问题描述】:
假设我们有这个 JavaScript 对象:
var object = {
innerObject:{
deepObject:{
value:'Here am I'
}
}
};
我们如何检查value属性是否存在?
我只能看到两种方式:
第一个:
if(object && object.innerObject && object.innerObject.deepObject && object.innerObject.deepObject.value) {
console.log('We found it!');
}
第二个:
if(object.hasOwnProperty('innerObject') && object.innerObject.hasOwnProperty('deepObject') && object.innerObject.deepObject.hasOwnProperty('value')) {
console.log('We found it too!');
}
但是有没有办法进行深入检查?比方说,类似:
object['innerObject.deepObject.value']
或
object.hasOwnProperty('innerObject.deepObject.value')
【问题讨论】:
-
当然,使用任何支持它的数字库。
-
您可以轻松编写一个函数,该函数接受这样的字符串,将其拆分为属性名称数组,然后进入循环检查每个属性是否存在。
标签: javascript