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

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

Пример:

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

Элементы 0-го и 2-го массива "пусты".

8 ответов

Вам нужно пройти через цикл.

function checkArray(my_arr){
 for(var i=0;i


Вы можете проверить, пройдя через массив с помощью простого for, например:

function NoneEmpty(arr) {
 for(var i=0; i
<p> <a href="http://jsfiddle.net/nick_craver/G8mmj/3/" rel="nofollow noreferrer" target="_blank">Здесь вы можете попробовать здесь</a>, причина, по которой мы не используем <code>.indexOf(), - это отсутствие поддержки в IE, иначе это 'Еще проще:

function NoneEmpty(arr) {
 return arr.indexOf("") === -1;
}

Но, увы, IE не поддерживает эту функцию на массивах, по крайней мере пока.


Вы можете попробовать функцию 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.

EDIT2: Неправильное ожидание.

.. Фредрик


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; внутри цикла, чтобы проверить, является ли строка пустой или нет.


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

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

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


var containsEmpty = !my_arr.some(function(e){return (!e || 0 === e.length);});

Это проверяет наличие 0, false, undefined, "" и NaN. Это также один лайнер и работает для IE 9 и выше.

licensed under cc by-sa 3.0 with attribution.