1. 程式人生 > >JS的filter用法

JS的filter用法

col 保留 javascrip pan spa 作用 -c console arr

filter也是一個常用的操作,它用於把Array的某些元素過濾掉,然後返回剩下的元素。

map()類似,Arrayfilter()也接收一個函數。和map()不同的是,filter()把傳入的函數依次作用於每個元素,然後根據返回值是true還是false決定保留還是丟棄該元素。

(1)篩選過濾,保留偶數

例如,在一個Array中,刪掉奇數,只保留偶數,可以這麽寫:

    <script type="text/javascript">
        var arr = [0,1,2,3,4,5,1,4,0];
        var arr_filter = arr.filter(
function(x){ return x%2 == 0;/* 篩選偶數 */ }) console.log(arr_filter) </script>

(2)篩選去除空格

篩選去除空格

    <script type="text/javascript">
        var arr = [0,1,2,3,4,"",5,1,4,0,""];
        var arr_filter = arr.filter(function(x){
            return x;
/* 篩選空格 */ }) console.log(arr_filter) </script>

(3)回調函數

filter()接收的回調函數,其實可以有多個參數。通常僅使用第一個參數,表示Array的某個元素。回調函數還可以接收另外兩個參數,表示元素的位置和數組本身:

        var arr = [‘A‘,‘B‘,‘C‘,‘d‘];
        var arr_filter = arr.filter(function(element,index,self){
            console.log(element);/* 依次打印‘A‘,‘B‘,‘C‘,‘d‘ */
            console.log(index);/* 依次打印0,1,2,3 */
            console.log(self);/* 打印數組本身即arr */
            return true;
        })

利用filter,可以巧妙地去除Array的重復元素:

        var arr_repeat = [‘A‘,‘B‘,‘A‘,‘B‘,‘B‘,‘C‘,‘A‘,‘D‘];
        var arr_filter = arr_repeat.filter(function(element,index,self){
            return self.indexOf(element) == index;
        })
        console.log(arr_filter);//返回[‘A‘,‘B‘,‘C‘,‘D‘]

去除重復元素依靠的是indexOf總是返回第一個元素的位置,後續的重復元素位置與indexOf返回的位置不相等,因此被filter濾掉了。

.

JS的filter用法