我需要检查数组是否至少包含一个空元素。如果任何一个元素为空,那么它将返回false。如何检查JavaScript数组中的空字符串?
实施例:
var my_arr = new Array();
my_arr[0] = "";
my_arr[1] = " hi ";
my_arr[2] = "";
第0和第二数组元素是 “空”。
我需要检查数组是否至少包含一个空元素。如果任何一个元素为空,那么它将返回false。如何检查JavaScript数组中的空字符串?
实施例:
var my_arr = new Array();
my_arr[0] = "";
my_arr[1] = " hi ";
my_arr[2] = "";
第0和第二数组元素是 “空”。
您必须通过循环检查。
function checkArray(my_arr){
for(var i=0;i<my_arr.length;i++){
if(my_arr[i] === "")
return false;
}
return true;
}
完成了这个伎俩,非常感谢 – Santanu 2010-08-11 11:53:40
您可以通过数组循环用一个简单的for
,像这样的检查:
function NoneEmpty(arr) {
for(var i=0; i<arr.length; i++) {
if(arr[i] === "") return false;
}
return true;
}
You can give it a try here,我们不使用.indexOf()
这里的原因是缺乏支持IE,否则它会是更简单的是这样的:
function NoneEmpty(arr) {
return arr.indexOf("") === -1;
}
但很可惜,IE不支持此功能的阵列,至少目前还没有。
这不是OP所要求的相反(如果数组只有空元素,则返回true,而不是在任何元素为空时返回false)? – Telemachus 2010-08-11 11:44:42
针对数组的indexOf的良好调用。现在让我们希望来自IE开发团队的人阅读并修复它! – fredrik 2010-08-11 11:46:22
+1为jsfiddle链接 – satoru 2010-08-11 11:47:33
你可以为这个做一个简单的帮助方法:
function hasEmptyValues(ary) {
var l = ary.length,
i = 0;
for (i = 0; i < l; i += 1) {
if (!ary[i]) {
return false;
}
}
return true;
}
//check for empty
var isEmpty = hasEmptyValues(myArray);
编辑:此检查false
,undefined
,NaN
,null
,""
和0
。
编辑2:误读真假预期。
..fredrik
也检查'undefined',对吧? – Telemachus 2010-08-11 11:54:20
是的,我错过了。 – fredrik 2010-08-11 11:58:08
您可以尝试jQuery.inArray()功能:
return jQuery.inArray("", my_arr)
我的问题是你给的代码示例是PHP下您的意见看,所以我在想,如果你实际去为PHP一个?在PHP这将是:
function hasEmpty($array)
{
foreach($array as $bit)
{
if(empty($bit)) return true;
}
return false;
}
否则,如果你确实确实需要JavaScript的,我指的是尼克Craver的回答
function containsEmpty(a) {
return [].concat(a).sort().reverse().pop() === "";
}
alert(containsEmpty(['1','','qwerty','100'])); // true
alert(containsEmpty(['1','2','qwerty','100'])); // false
只是做一个len(my_arr[i]) == 0;
一个循环中,以检查是否字符串为空。
var containsEmpty = !my_arr.some(function(e){return (!e || 0 === e.length);});
这会检查0,false,undefined,“”和NaN。 它也是一个单线程,适用于IE 9及更高版本。
你什么意思是空的? – DuduAlul 2010-08-11 11:34:43
空你的意思是“未定义”或空字符串? – Telemachus 2010-08-11 11:35:14
var my_arr = new Array(); my_arr [0] =“”; my_arr [1] =“hi”; my_arr [2] =“”; 这里第0个和第2个元素是空的 – Santanu 2010-08-11 11:36:07