假设像这样的对象
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);
}
是否有更简洁的方法可以达到相同的效果?
由于
答案 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"