我需要檢查數組是否至少包含一個空元素。如果任何一個元素爲空,那麼它將返回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