Я должен проверить, содержит ли массив по крайней мере один пустой элемент. Если какой-либо один элемент будет пуст затем, то он возвратит false.
Пример:
var my_arr = new Array();
my_arr[0] = "";
my_arr[1] = " hi ";
my_arr[2] = "";
0th и 2-е элементы массива "пусты".
Вы должны пройти регистрацию через цикл.
function checkArray(my_arr){
for(var i=0;i<my_arr.length;i++){
if(my_arr[i] === "")
return false;
}
return true;
}
Вы можете попробовать функцию jQuery.inArray () :
return jQuery.inArray("", my_arr)
Для этого можно использовать простой метод справки:
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: неверное толкование истинного / ложного ожидания.
.. фредрик
Вы можете проверить, перебирая массив с помощью простого для
, например:
function NoneEmpty(arr) {
for(var i=0; i<arr.length; i++) {
if(arr[i] === "") return false;
}
return true;
}
Вы можете попробовать здесь , причина, по которой мы не используем . indexOf ()
здесь отсутствует поддержка в IE, иначе было бы еще проще:
function NoneEmpty(arr) {
return arr.indexOf("") === -1;
}
Но, увы, IE не поддерживает эту функцию для массивов, по крайней мере, пока.
Я вижу в ваших комментариях под вопросом, что приведенный вами пример кода является PHP, поэтому мне было интересно, действительно ли вы собираетесь использовать PHP? В PHP это будет:
function hasEmpty($array)
{
foreach($array as $bit)
{
if(empty($bit)) return true;
}
return false;
}
В противном случае, если вам действительно нужен JavaScript, я обращаюсь к ответу Ника Крейвера
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;
внутри цикла, чтобы проверить, пуста ли строка или нет.