我可以检查一个数组是否有元素的最简单方法是什么?

时间:2013-08-22 10:38:23

标签: javascript

如何确定数组是否包含元素,如果未定义该数组,则返回false?

我有数组modal.questions

我正在使用modal.questions.length但是现在如果没有定义问题,这似乎是一个问题。

有没有办法可以使用_underscore.js的libray函数或者一种简单的方法来编写函数来进行检查?

5 个答案:

答案 0 :(得分:1)

if(modal.questions && modal.questions.length > 0) {}

应该有用。

答案 1 :(得分:0)

首先检查if(modal.questions === undefined),然后进行长度检查。

注意:在某些较旧的浏览器中,可能会覆盖undefined的值。在这种情况下,安全检查将为if(modal.questions === void 0),因为void 0将返回实际的undefined值。但是,如果您的目标是现代浏览器,则无需担心。

答案 2 :(得分:0)

尝试这样:

if (typeof array !== 'undefined' && array.length > 0) {
    // existss and have one item
}

答案 3 :(得分:0)

function isEmpty(theArray) {
    return theArray == null || theArray.length <= 0;
}

答案 4 :(得分:0)

这适用于所有浏览器

if(!Array.isArray) {
  Array.isArray = function (vArg) {
    return Object.prototype.toString.call(vArg) === "[object Array]";
  };
}

//add length check also here
function isEmpty(theArray) {
    return Array.isArray(theArray)    
}

var a = new Array();
var b = null;
var c = undefined;
var d = [];

alert(isEmpty(a)); //true
alert(isEmpty(b)); //false
alert(isEmpty(c)); //false
alert(isEmpty(d)); //true

JSFiddle

Source:)