0

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

我有数组modal.questions

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

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

4

5 回答 5

1

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

应该管用。

于 2013-08-22T10:41:42.647 回答
0

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

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

于 2013-08-22T10:41:18.253 回答
0

试试这样:

if (typeof array !== 'undefined' && array.length > 0) {
    // existss and have one item
}
于 2013-08-22T10:41:35.397 回答
0
function isEmpty(theArray) {
    return theArray == null || theArray.length <= 0;
}
于 2013-08-22T10:44:39.810 回答
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

来源:)

于 2013-08-22T11:25:16.327 回答