Ответ 1
Используйте функцию jquery grep, она идентифицирует элементы массива, которые определяют критерии, которые вы определяете
arr = jQuery.grep(arr, function(n, i){
return (n !== "" && n != null);
});
Возможный дубликат:
Удалить пустые элементы из массива в Javascript
Я хочу удалить null
или удалить элементы из массива с помощью jquery
var clientName= new Array();
clientName[0] = "jack";
clientName[1] = "";
clientName[2] = "john";
clientName[2] = "peter";
Просьба дать несколько предложений.
Используйте функцию jquery grep, она идентифицирует элементы массива, которые определяют критерии, которые вы определяете
arr = jQuery.grep(arr, function(n, i){
return (n !== "" && n != null);
});
В 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;
});
Думал, что, поскольку функция jQuery .map()
полагается на возврат чего-то не null/undefined, вы можете уйти от всего лишь примерно так:
var new_array = $.map(old_array, function (el) {
return el !== '' ? el : null;
});
Вам все равно нужно проверить пустую строку, но вам действительно не нужно больше проверять значение null и undefined, чтобы в вашей логике было меньше осложнений.
Попробуйте следующее:
$.each(clientname, function(key, value) {
if (value === 'undefined' || value === '')
clientname.splice(key,1);
});
Используйте следующий код:
var newarr=[];
for(var i=0; i<len(clientname);i++){
if(clientname[i] !== "" && clientname[i] !== null){
newarr.push(clientname[i]);
}
}