注意:filter()不会对空数组检测----同样不会改变原来的数组
currentValue 必须。当前元素的值
index 可选。当期元素的索引值
arr 可选。当期元素属于的数组对象
和map()不同的是,filter()把传入的函数依次作用于每个元素,然后根据返回值是true还是false来决定保留还是丢弃该元素
实例:
删掉偶数,只保留奇数
var arr = [5,6,8,4,2,9,45];
var b = arr.filter(function(value){
return value%2!== 0;
})
------[5,9,45]
把一个arr数组的空字符串删掉
var arr = ['A', '', 'B', null, undefined, 'C', ' '];
var b = arr.filter(function(value){
return value&&value.trim();
})
------['A', 'B', 'C']
去掉arr的重复元素
var arr = ['apple', 'strawberry', 'banana', 'pear', 'apple', 'orange', 'orange'];
var b = arr.filter(function(value,index,self){
return self.indexOf(value)===index;
})
筛选出素数
3 function get_primes(arr) {
4 var i;
5 return arr.filter(function (element) {
6 var flag=true;
7 if(element<2){
8 flag=false;
9 }else {
10 for(var i=2;i<element;i++){
11 if (element%i==0){
12 flag=false;
13 break;
14 }
15 }
16 }
17 return flag;
18 });
19 }
20
21 // 测试:
22 var
23 x,
24 r,
25 arr = [];
26 for (x = 1; x < 100; x++) {
27 arr.push(x);
28 }
29 r = get_primes(arr);