高阶函数-数组方法

高阶函数

定义:把函数作为参数或者把函数作为返回值的函数(例如闭包)称为高阶函数。

 * sort方法排序,不传入参数默认按照字符串排序,传入function(a,b){return a-b}是从小到大排列,b-a是从大到小排列
 * reverse 倒序输出数组,改变原数组(不是高阶函数)
 * forEach 遍历数组function(item,index){},第一个参数是元素,第二个是索引 注意:对空数组是不会执行回调函数
 * map  返回一个新数组,数组中的元素为原始数组元素每次调用函数的值;注意:①不该变原数组 ②不会对空数组检测
 * reduce  接收一个函数作为累加器,数组从左到右中的每个值经过函数处理并累加,最终计算为一个值。用于快速求和,效率高,对空数组不做处理
 * reduceRight 跟reduce一样,唯一不同的地方就是累加的顺序不同,累加的顺序是从右到左
 * filter 创建一个新的数组,返回原数组中满足条件的元素,注意:不改变原数组,不对空数组进行处理
 * every  方法用于检测数组所有元素是否都符合指定条件  全部满足返回true 有一个不满足返回false,其余不做检测;注意:对空数组不作处理
 * some   方法用于检测数组中的元素是否有满足条件的元素,有一个满足返回true,

sort

var arr = [1,9,6,30];
console.log(arr.sort()); // 输出[1, 30, 6, 9]是按照首字母排序
arr.sort(function(a,b){
	return a-b;
})
console.log(arr); // 输出[1, 6, 9, 30] // 经过排序后按照从小到大排序

map

var arr = [1,9,6,30];
var arr2=arr.map(function(item,index,array){
	return item+2;
})
console.log(arr); // 输出[1,9,6,30]
console.log(arr2); // 输出[3, 11, 8, 32]

filter

var arr = [1,9,6,30];
var arr2=arr.filter(function(item,index,array){
	return item>5;
})
console.log(arr); // [1,9,6,30]
console.log(arr2); // [9,6,30]

偏函数

定义:通过指定部分参数的形式返回新的定制函数的形式就是偏函数(isType方法的封装)。

some,every,reduce方法
偏函数isType封装
偏函数解释

原文地址:https://www.cnblogs.com/bonly-ge/p/9556979.html