在迭代之前对数组存在进行内联检查

时间:2014-08-29 06:57:46

标签: javascript jquery

我经常在迭代之前检查一个集合是否存在:

var a1 = [1,2,3], a2;

if(a1){
    $.each(a1, function(k, v){
        console.log(v);
    });
}

我想了一下内联解决方案,并想出了这个:

!a1 || $.each(a1, function(k, v){
    console.log(v);
});

这似乎工作得很好。有任何缺点或替代方案吗?

如果没有检查,我会得到Uncaught TypeError: Cannot read property 'length' of undefined例外。

http://jsfiddle.net/w1tuhtde/

1 个答案:

答案 0 :(得分:1)

你当然可以用另一种方式使用||运算符:

$.each(a2 || {}, function(k, v){
  console.log(v);
});

$.each(a2 || [], function(k, v){
  console.log(v);
});