何为高阶函数?
通俗的讲,高阶函数就是可以接收另一个函数作为参数的函数
常见的高阶函数有map,reduce,filter,sort,every,find,findIndex,forEach。那么他们有什么区别,使用于哪些场景呢
1.map
// 用来对数组进行特定的操作 返回一个新数组,不改变原始数组 var list = [22,180,45,50,14] let a = list.map(function (x) { return x*2 }); console.log(a) //[44, 360, 90, 100, 28]
2.reduce
// 常用于计算数组的和 let fansSum = this.fansData.reduce(function (prev, cur) { return prev + cur })
3.filter
// 用于筛选符合条件的元素 this.advertShowpagesList = this.advertShowpagesList.filter( item => item.name === 'home' )
4.sort
// 常用来排序 var list = [22,180,45,50,14] list.sort(function (x, y) { if(x>y){return 1} if(x<y){return -1} return 0 }); console.log(list)
5.find 符合条件的第一个元素,找到则返回,找不到返回undefined
// 常用来查找符合条件的元素 var list = [22,180,45,50,14] let a = list.find(function (x) { return x == 14 }); console.log(a) }
6.some
// 用来查找是否有符合条件的元素 var list = [22,180,45,50,14] let a = list.some(function (x) { return x>100 }); console.log(a) //true
7.every
// 用来查找是否元素均符合条件
var list = [22,180,45,50,14]
let a = list.every(function (x) {
return x>100
});
console.log(a) //false
8.findIndex 符合条件的第一个元素下标,找到则返回,找不到返回-1
// 用来查找符合条件的元素下标 var list = [22,180,45,50,14] let a = list.findIndex(function (x) { return x==14 }); console.log(a) //4
9.forEach
var list = [22,18,45,50,14] list.forEach(function (x, y) { console.log(x) console.log(y) });
console.log(list)
}