如何使用jquery从数组中删除空值

时间:2012-10-05 11:58:49

标签: jquery arrays

  

可能重复:
  Remove empty elements from an array in Javascript

我想使用null

从数组中删除jquery或空元素
var clientName= new Array();
clientName[0] = "jack";
clientName[1] = "";
clientName[2] = "john";
clientName[2] = "peter";

请提出一些建议。

6 个答案:

答案 0 :(得分:20)

使用jquery grep 函数,它将识别通过您定义的标准的数组元素

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

答案 1 :(得分:5)

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;
});

答案 2 :(得分:2)

正在考虑因为jQuery的.map()函数依赖于返回而不是 null / undefined的东西,所以你可以使用以下内容:

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

你仍然需要检查空字符串,但是你真的不必再检查null和undefined,这样你的逻辑就不那么复杂了。

答案 3 :(得分:0)

  1. 创建一个新的空数组。
  2. 如果值不等于''。
  3. ,进入foreach循环并将项添加到新数组

答案 4 :(得分:-1)

试试这个:

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

答案 5 :(得分:-1)

使用以下代码:

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

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