JS的filter用法
阿新 • • 發佈:2019-03-23
col 保留 javascrip pan spa 作用 -c console arr
filter也是一個常用的操作,它用於把Array
的某些元素過濾掉,然後返回剩下的元素。
和map()
類似,Array
的filter()
也接收一個函數。和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用法