javascript – 测试深层对象结构中属性的存在

前端之家收集整理的这篇文章主要介绍了javascript – 测试深层对象结构中属性的存在前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
javascript中,可以说我想访问一个对象深层的属性,例如:

entry.mediaGroup [0] .contents [0] .URL

在该结构的任何位置,属性可能未定义(因此可能不会设置mediaGroup).

什么是简单的说法:

if( entry.mediaGroup[0].contents[0].url ){
   console.log( entry.mediaGroup[0].contents[0].url )
}

没有产生错误?如果沿途的任何一个点未定义,这样就会产生一个未定义的错误.

我的解决方

if(entry) && (entry.mediaGroup) && (entry.MediaGroup[0]) ...snip...){
   console.log(entry.mediaGroup[0].contents[0].url)
}

这是相当漫长的我猜,必须有一些更优雅的东西.

解决方法

这是一个非常懒惰的方法,但它符合许多类似情况的标准:
try {
  console.log(entry.mediaGroup[0].contents[0].url);
} catch (e) {}

这不应该在其他错误可能被忽略的长代码块上完成,但是应该适合于这样一个简单的情况.

猜你在找的JavaScript相关文章