# JS高阶函数

在函数中,以一个函数为型参的函数方法被称之为高阶函数。在数组中常用的map | filte | reduce都是高阶函数。

# map

Array.prototype.myMap = function(fn) {
	let newArray = [];
	for(let i = 0; i < this.lenght; i++){
		newArray.push( fn(this[i]) )
	}
	return newArray;
}

# filter

Array.prototype.myFilter = function(fn){
    let newArray = [];
    for(let i = 0; i < this.length; i++){
        fn(this[i]) && newArray.push(this[i])
    }
    return newArray;
}

# reduce

Array.prototype.myReduce = function(fn){
    for(let i=0;i<this.length;i++){
        initVal =reducer(initVal,this[i],i,this);
    }
    return initVal
}