手写数组map函数和filter函数

  • map()

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    var arr = [1,2,3]

    //方法实现
    Array.prototype._map = function(fn){
    var newArr = []
    for(var i=0; i<this.length;i++){
    newArr.push(fn(this[i],i))
    }
    return newArr
    }

    //方法调用
    arr._map((v)=>v+1)
  • filter()

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
var arr = [1,2,3]

//方法实现
Array.prototype._filter = function(fn){
var newArr = []
for(var i=0; i<this.length;i++){
if(fn(this[i]){
newArr.push(fn(this[i]))
}
}
return newArr
}

//方法调用
arr._filter((v)=>v==1)