JavaScript数组的高阶函数

高阶函数
 一个函数就接收另一个函数作为参数,这种函数就称之为高阶函数

高阶函数filter

filter用于过滤数组的元素。

filter用于过滤array中的一些值,通过带入的函数返回的ture 或false 保留或去除,返回一个新的array

var a = [1,2,3,4,5]
var b =[]
var fun = function(x)
{
    return x%2 !== 0;
}
b = a.filter(fun)
alert(b)

判断筛选出array中的素数

1 //判断素数自定义函数;
 2 function get_su(x){
 3     if(x <=3){return x>1;}
 4     if(x % 2 === 0 || x % 3 === 0){return false;}
 5     for(var i = 5; i*i <= x; i +=6){
 6     if(x % i ===0 || x%(i+2) ===0){
 7         return false;
 8     }
 9     }
10     return ture;
11 }
12 
13 var arr = [1,2,3,4,5,6,7,8,9,10];
14 
15 //filter使用get_su(),筛选arr;
16 var su = arr.filter(get_su(x));
17 console.log(su);//[2, 3, 5, 7]

高阶函数map

map作用在数组的每个元素上的函数。

此时我们有一个数组和一个接受一个参数并返回一个数的函数。我们需要把这个数组的每一个值在这个函数上走一遍,从而得到一个新数组。此时就需要map了

var a = [1,2,3,4,5,6];
var b = []
var fun = function(x)
{
    return x * x;
}
b = a.map(fun)
alert(b)  //1 4 9 16 25 36

高阶函数reduce

Arrayreduce()把一个函数作用在这个Array[x1, x2, x3...]上,这个函数必须接收两个参数,reduce()把结果继续和序列的下一个元素做累积计算,其效果就是:

[x1, x2, x3, x4].reduce(f) = f(f(f(x1, x2), x3), x4)

var a = [1,2,3,4,5]
var b =[]
var fun = function(x,y)
{
    return x+y;
}
b = a.reduce(fun)
alert(b) // 15


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值