分享

js和jquery的数组过滤grep()和filter()数组去重去nullundefind

 钻石的眼泪521 2017-10-12
  1. <!DOCTYPE html>  
  2. <html lang="en">  
  3. <head>  
  4.     <meta charset="UTF-8">  
  5.     <title>Document</title>  
  6. </head>  
  7. <body>  
  8.       
  9. </body>  
  10. <script src="jquery.min.js"></script>  
  11. </html>  
  12. <script type="text/javascript">  
  13.     //过滤数组中的null和undefined   
  14.     //jquery方法  
  15.     //jQuery.grep( array, function [, invert ] )  
  16.     //参数            描述  
  17.     //array         Array类型将被过滤的数组。  
  18.     //function      Function类型指定的过滤函数。  
  19.     //invert        可选/Boolean类型默认值为false。指定是否反转过滤结果。  
  20.     //jQuery.grep()函数的返回值为Array类型,返回通过指定函数过滤后的结果数组。  
  21.     //function 里面的i为角标  
  22.     var arr1  =[1,2,3,null,undefined];  
  23.     var arr=$.grep(arr1,function(n,i){  
  24.         return n;  
  25.     },false);  
  26.     console.info(arr);//(3) [1, 2, 3];过滤掉了null和undeifind  
  27.   
  28.     //js方法  
  29.     //大家应该都知道filter是Javascript中Array常用的操作,它用于把Array的某些元素过滤掉,然后返回剩下的元素。  
  30.     //下面这篇文章就给大家介绍了关于Javascript中Array.filter()的妙用,下面来一起看看吧。  
  31.     var arr2 = arr1.filter(function(item){  
  32.         return item!=undefined;  
  33.     });  
  34.     console.log(arr2)//(3) [1, 2, 3]  
  35.   
  36.     //例如,在一个Array中,删掉偶数,只保留奇数,可以这么写:  
  37.     var arr = [1, 2, 4, 5, 6, 9, 10, 15];  
  38.     var r = arr.filter(function (x) {  
  39.      return x % 2 !== 0;  
  40.     });  
  41.     console.log(r); // [1, 5, 9, 15]  
  42.   
  43.     //把一个Array中的空字符串删掉,可以这么写:  
  44.     var arr = ['A', '', 'B', null, undefined, 'C', ' '];  
  45.     var r = arr.filter(function (s) {  
  46.      return s && s.trim(); // 注:IE9(不包含IE9)以下的版本没有trim()方法  
  47.     });  
  48.     console.log(arr); // ['A', 'B', 'C']  
  49.   
  50.     // 可见用 filter 这个高阶函数,关键在于正确实现一个“筛选”函数。  
  51.     // 回调函数  
  52.     // filter 接收的回调函数,其实可以有多个参数。通常我们仅使用第一个参数,表示Array的某个元素。  
  53.     // 回调函数还可以接收另外两个参数,表示元素的位置和数组本身:  
  54.     var arr = ['A', 'B', 'C'];  
  55.     var r = arr.filter(function (element, index, self) {  
  56.      console.log(element); // 依次打印'A', 'B', 'C'  
  57.      console.log(index); // 依次打印0, 1, 2  
  58.      console.log(self); // self就是变量arr  
  59.      return true;  
  60.     });  
  61.   
  62.     //利用 filter ,可以巧妙地去除Array的重复元素:  
  63.     var r,  
  64.     arr = ['apple', 'strawberry', 'banana', 'pear', 'apple', 'orange', 'orange', 'strawberry'];  
  65.     r = arr.filter(function (element, index, self) {  
  66.      return self.indexOf(element) === index;  
  67.     });  
  68.     console.log(r.toString());  
  69. </script>  


function bouncer(arr) {
//利用filter过滤
arr  = arr.filter(function filter(arrt){
    //return arrt!=false&&arrt!=null&&arrt!=""&&arrt!=undefined&&arrt!==NaN&&arrt!=0;
    return  arrt;
});
//利用grep过滤
/*arr = $.grep(arr,function(n,i){  
        return n;  
     },false);*/
return arr;
}
bouncer([false, null, 0, NaN, undefined, ""]);

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多