如何确定数组是否包含元素,如果未定义该数组,则返回false?
我有数组modal.questions
我正在使用modal.questions.length但是现在如果没有定义问题,这似乎是一个问题。
有没有办法可以使用_underscore.js的libray函数或者一种简单的方法来编写函数来进行检查?
答案 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
Source:)