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

how to remove null values from an array using jquery

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
Remove empty elements from an array in Javascript

我想从使用jquery的数组中删除null或空元素。

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

请给出一些建议。


使用jquery grep函数,它将标识通过定义的条件的数组元素

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


jquery不需要,使用普通的javascript(更快!):

1
2
3
4
5
6
7
var newArray = [];
for (var i = 0; i < clientname.length; i++) {
    if (clientname[i] !=="" && clientname[i] !== null) {
        newArray.push(clientname[i]);
    }
}
console.log(newArray);

现代浏览器的另一个简单解决方案(使用数组filter()方法):

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


我们认为,由于jquery的.map()函数依赖于返回一些非空/未定义的内容,因此您可以不必这样做:

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

您仍然需要检查空字符串,但实际上不必再检查空字符串和未定义字符串,这样逻辑就不那么复杂了。


  • 创建新的空数组。
  • 如果值不等于"",请进入foreach循环并向新数组添加项。

  • 使用以下代码:

    1
    2
    3
    4
    5
    6
    7
    var newarr=[];
    for(var i=0; i<len(clientname);i++){

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


    试试这个:

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