如何确定一个数组是否有元素,如果未定义该数组,则返回 false?
我有数组modal.questions
我使用的是 modal.questions.length 但现在如果未定义问题,这似乎是一个问题。
有没有一种方法可以使用 _underscore.js 的库函数或一种简单的方法来编写函数来进行检查?
如何确定一个数组是否有元素,如果未定义该数组,则返回 false?
我有数组modal.questions
我使用的是 modal.questions.length 但现在如果未定义问题,这似乎是一个问题。
有没有一种方法可以使用 _underscore.js 的库函数或一种简单的方法来编写函数来进行检查?
if(modal.questions && modal.questions.length > 0) {}
应该管用。
先检查if(modal.questions === undefined)
,然后检查长度。
注意:在某些较旧的浏览器中,可能会覆盖undefined
. 在这种情况下,安全检查if(modal.questions === void 0)
将void 0
返回实际undefined
值。但是,如果您针对的是现代浏览器,则无需担心。
试试这样:
if (typeof array !== 'undefined' && array.length > 0) {
// existss and have one item
}
function isEmpty(theArray) {
return theArray == null || theArray.length <= 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
来源:)