高阶函数,一个函数可以接收另一个函数作为参数,或者是返回一个函数。常见的高阶函数有map、reduce、filter、sort等。
1. map()
接受一个函数作为参数,不改变原来的数组,只是返回一个全新的数组。
var arr = [1,2,3,4,5]
var arr1 = arr.map(item=>item*item)
console.log(arr1)//[1, 4, 9, 16, 25]
2. reduce()
reduce返回一个全新的数组。reduce接受一个函数作为参数,这个函数要有两个形参,代表数组中的前两项,reduce会将这个函数的结果与数组中的第三项再次组成这个函数的两个形参以此类推进行累积操作。
var arr = [1,2,3,4,5]
var arr3 = arr.reduce((a,b)=>a+b)
console.log(arr3)//15
3. filter()
filter返回过滤后的数组。filter也接收一个函数作为参数,这个函数将作用于数组中的每个元素,根据该函数每次执行后返回的布尔值来保留结果,如果是true就保留,如果是false就过滤(这点区别map)
var arr = [1,2,3,4,5]
var arr2 = arr.filter(item=>item>2)
console.log(arr2)//3、4、5