js或jquery有没有删除空数组元素的函数?var arr=["","hello","goodboy"];怎么样变成arr=["hello","goodboy"];

解决方案 »

  1.   


    <script language=javascript>
    Array.prototype.del=function(n) {  //n表示第几项,从0开始算起。
    //prototype为对象原型,注意这里为对象增加自定义方法的方法。
      if(n<0)  //如果n<0,则不进行任何操作。
        return this;
      else
        return this.slice(0,n).concat(this.slice(n+1,this.length));
        /*
          concat方法:返回一个新数组,这个新数组是由两个或更多数组组合而成的。
                这里就是返回this.slice(0,n)/this.slice(n+1,this.length)
               组成的新数组,这中间,刚好少了第n项。
          slice方法: 返回一个数组的一段,两个参数,分别指定开始和结束的位置。
        */
    }
    别人写的 
      

  2.   


    <script>
    var arr=["","hello","","world","  ","goodboy"]; 
    var trim = function(s) { return s.replace(/\s+/g,'');}
    var re = [];
    for(var i = 0, len = arr.length; i < len; i++) {
    if(trim(arr[i]).length > 0) re[re.length] = arr[i];
    }
    alert(re);
    </script>
      

  3.   

    arr = $.grep(arr, function () { return this != ''; }
      

  4.   

        var arr=["","hello","goodboy"]; 
        for(var i = 0; i < arr.length; i++) {
            if(arr[i].length == 0) arr.splice(i,1);
        }
        alert(arr);
      

  5.   


    JQ可以像楼上
    var arr=["","hello","","world","  ","goodboy"]; 
    alert($.grep(arr, function(n) {return $.trim(n).length > 0;}));