- <!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">
- //過濾數(shù)組中的null和undefined
- //jquery方法
- //jQuery.grep( array, function [, invert ] )
- //參數(shù) 描述
- //array Array類型將被過濾的數(shù)組。
- //function Function類型指定的過濾函數(shù)。
- //invert 可選/Boolean類型默認值為false。指定是否反轉過濾結果。
- //jQuery.grep()函數(shù)的返回值為Array類型,返回通過指定函數(shù)過濾后的結果數(shù)組。
- //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中,刪掉偶數(shù),只保留奇數(shù),可以這么寫:
- 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 這個高階函數(shù),關鍵在于正確實現(xiàn)一個“篩選”函數(shù)。
- // 回調函數(shù)
- // filter 接收的回調函數(shù),其實可以有多個參數(shù)。通常我們僅使用第一個參數(shù),表示Array的某個元素。
- // 回調函數(shù)還可以接收另外兩個參數(shù),表示元素的位置和數(shù)組本身:
- 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, ""]);
|