JavaScript数组的高阶函数

来源:互联网 发布:韩磊 知乎 编辑:程序博客网 时间:2024/04/28 09:27

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

高阶函数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


0 0
原创粉丝点击