javascript - 检查对象是否具有子属性

时间:2014-07-10 14:03:48

标签: javascript

假设像这样的对象

var a = {
  b: {
    c: [
      {
        e: 'hello'
      },
      {
        f: 'bye'
      }
    ]
  }
};

我想检查e是否有效。

目前我正在使用多个if条件,例如

if (typeof a !== 'undefined' && typeof a.b !== 'undefined' && typeof a.b.c !== 'undefined' && typeof a.b.c[0] !== 'undefined') {
      console.log('value of e ' + a.b.c[0].e);
}

是否有更简洁的方法可以达到相同的效果?

由于

1 个答案:

答案 0 :(得分:2)

我不确定你在尝试什么,但你可以用它来确保有“e”值

a = a || {};
var e = a && a.b && a.b.c && a.b.c[0] && a.b.c[0].e;

或者您可以使用

a = a || {};
if (a && a.b && a.b.c && a.b.c[0] && a.b.c[0].e){
   console.log('value of e ' + a.b.c[0].e);
}

如果您确定值,我喜欢这种用法。

var e = a.b.c[0].e || "no value";
// "hello"

var e = a.b.c[0].d || "no value";
// "no value"