我有以下代码
var oDataEn = aData[0][aProperties[0].split('/')[0]];
if (!(oDataEn != null && oDataEn.results && oDataEn.results.length > 0)) {
...
else
...
这是确定,除非
aData[0] = 'undefined'
我的问题是,是否有更好的方式来编写它而不是仅仅添加
if(aData[0] != null)
{
var oDataEn = aData[0][aProperties[0].split('/')[0]];
}
如果可能,我不想要两个if ...
答案 0 :(得分:7)
从三元开始 - 我假设aData [0]可能是假的(null,undefined,0或“”):
var oDataEn = aData[0]?aData[0][aProperties[0].split('/')[0]]:null;
if (oDataEn && oDataEn.results && oDataEn.results.length > 0) {
答案 1 :(得分:0)
if(aData[0] === undefined){}
到目前为止,是最好的方式。
根据你的评论
if(typeof aData[0] != 'undefined' /*&& other if statements*/){}
因此如果未定义则不会处理。
答案 2 :(得分:0)
通过使用三元运算符,你可以做到这一点。三元运算符只会减少代码行。
var oDataEn = aData[0] === undefined ? '' : aData[0][aProperties[0].split('/')[0]];