Как удалить нулевые значения из массива с помощью jquery

Возможный дубликат:
Удалить пустые элементы из массива в Javascript

Я хочу удалить null или удалить элементы из массива с помощью jquery

var clientName= new Array();
clientName[0] = "jack";
clientName[1] = "";
clientName[2] = "john";
clientName[2] = "peter";

Просьба дать несколько предложений.

Ответ 1

Используйте функцию jquery grep, она идентифицирует элементы массива, которые определяют критерии, которые вы определяете

arr = jQuery.grep(arr, function(n, i){
  return (n !== "" && n != null);
});

Ответ 2

В jQuery нет необходимости использовать обычный JavaScript (это быстрее!):

var newArray = [];
for (var i = 0; i < clientname.length; i++) {
    if (clientname[i] !== "" && clientname[i] !== null) {
        newArray.push(clientname[i]);
    }
}
console.log(newArray);

Еще одно простое решение для современных браузеров (используя метод Array filter()):

clientname.filter(function(value) {
    return value !== "" && value !== null;
});

Ответ 3

Думал, что, поскольку функция jQuery .map() полагается на возврат чего-то не null/undefined, вы можете уйти от всего лишь примерно так:

var new_array = $.map(old_array, function (el) {
    return el !== '' ? el : null;
});

Вам все равно нужно проверить пустую строку, но вам действительно не нужно больше проверять значение null и undefined, чтобы в вашей логике было меньше осложнений.

Ответ 4

  • Создайте новый пустой массив.
  • Перейдите в цикл foreach и добавьте элементы в новый массив, если значение не равно '..

Ответ 5

Попробуйте следующее:

$.each(clientname, function(key, value) { 
  if (value === 'undefined' || value === '')
     clientname.splice(key,1);
});

Ответ 6

Используйте следующий код:

var newarr=[];
for(var i=0; i<len(clientname);i++){

   if(clientname[i] !== "" && clientname[i] !== null){
    newarr.push(clientname[i]);
   }
}