Как я могу проверить массивы JavaScript на пустые строки?

Я должен проверить, содержит ли массив по крайней мере один пустой элемент. Если какой-либо один элемент будет пуст затем, то он возвратит false.

Пример:

var my_arr = new Array(); 
my_arr[0] = ""; 
my_arr[1] = " hi ";
my_arr[2] = "";

0th и 2-е элементы массива "пусты".

9
задан Telemachus 11 August 2010 в 11:46
поделиться

7 ответов

Вы должны пройти регистрацию через цикл.

function checkArray(my_arr){
   for(var i=0;i<my_arr.length;i++){
       if(my_arr[i] === "")   
          return false;
   }
   return true;
}
10
ответ дан 4 December 2019 в 06:11
поделиться

Вы можете попробовать функцию jQuery.inArray () :

return jQuery.inArray("", my_arr)
7
ответ дан 4 December 2019 в 06:11
поделиться

Для этого можно использовать простой метод справки:

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: неверное толкование истинного / ложного ожидания.

.. фредрик

3
ответ дан 4 December 2019 в 06:11
поделиться

Вы можете проверить, перебирая массив с помощью простого для , например:

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 не поддерживает эту функцию для массивов, по крайней мере, пока.

17
ответ дан 4 December 2019 в 06:11
поделиться

Я вижу в ваших комментариях под вопросом, что приведенный вами пример кода является PHP, поэтому мне было интересно, действительно ли вы собираетесь использовать PHP? В PHP это будет:

function hasEmpty($array)
{
  foreach($array as $bit)
  {
    if(empty($bit)) return true;
  }

  return false;
}

В противном случае, если вам действительно нужен JavaScript, я обращаюсь к ответу Ника Крейвера

1
ответ дан 4 December 2019 в 06:11
поделиться
function containsEmpty(a) {
    return [].concat(a).sort().reverse().pop() === "";
}
alert(containsEmpty(['1','','qwerty','100'])); // true
alert(containsEmpty(['1','2','qwerty','100'])); // false
3
ответ дан 4 December 2019 в 06:11
поделиться

Просто сделайте len (my_arr [i]) == 0; внутри цикла, чтобы проверить, пуста ли строка или нет.

1
ответ дан 4 December 2019 в 06:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: