- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>Document</title>
- </head>
- <body>
-
- </body>
- <script src="jquery.min.js"></script>
- </html>
- <script type="text/javascript">
- //过滤数组中的null和undefined
- //jquery方法
- //jQuery.grep( array, function [, invert ] )
- //参数 描述
- //array Array类型将被过滤的数组。
- //function Function类型指定的过滤函数。
- //invert 可选/Boolean类型默认值为false。指定是否反转过滤结果。
- //jQuery.grep()函数的返回值为Array类型,返回通过指定函数过滤后的结果数组。
- //function 里面的i为角标
- var arr1 =[1,2,3,null,undefined];
- var arr=$.grep(arr1,function(n,i){
- return n;
- },false);
- console.info(arr);//(3) [1, 2, 3];过滤掉了null和undeifind
-
- //js方法
- //大家应该都知道filter是Javascript中Array常用的操作,它用于把Array的某些元素过滤掉,然后返回剩下的元素。
- //下面这篇文章就给大家介绍了关于Javascript中Array.filter()的妙用,下面来一起看看吧。
- var arr2 = arr1.filter(function(item){
- return item!=undefined;
- });
- console.log(arr2)//(3) [1, 2, 3]
-
- //例如,在一个Array中,删掉偶数,只保留奇数,可以这么写:
- var arr = [1, 2, 4, 5, 6, 9, 10, 15];
- var r = arr.filter(function (x) {
- return x % 2 !== 0;
- });
- console.log(r); // [1, 5, 9, 15]
-
- //把一个Array中的空字符串删掉,可以这么写:
- var arr = ['A', '', 'B', null, undefined, 'C', ' '];
- var r = arr.filter(function (s) {
- return s && s.trim(); // 注:IE9(不包含IE9)以下的版本没有trim()方法
- });
- console.log(arr); // ['A', 'B', 'C']
-
- // 可见用 filter 这个高阶函数,关键在于正确实现一个“筛选”函数。
- // 回调函数
- // filter 接收的回调函数,其实可以有多个参数。通常我们仅使用第一个参数,表示Array的某个元素。
- // 回调函数还可以接收另外两个参数,表示元素的位置和数组本身:
- var arr = ['A', 'B', 'C'];
- var r = arr.filter(function (element, index, self) {
- console.log(element); // 依次打印'A', 'B', 'C'
- console.log(index); // 依次打印0, 1, 2
- console.log(self); // self就是变量arr
- return true;
- });
-
- //利用 filter ,可以巧妙地去除Array的重复元素:
- var r,
- arr = ['apple', 'strawberry', 'banana', 'pear', 'apple', 'orange', 'orange', 'strawberry'];
- r = arr.filter(function (element, index, self) {
- return self.indexOf(element) === index;
- });
- console.log(r.toString());
- </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, ""]);
|