一. filter()实现:
Arrar.prototype.myFilter = function (fn) {
let arr = [];
for(let i=0; i<this.length;i++) {
let item = this[i]
if(fn(item,i,this)) {
arr.push(this[i])
}
}
return arr
}
//利用 myFilter实现数组去重
let arr1 = [1,2,3,4,5,1,2,3,4,5];
let res = arr1.myFilter((item,index,arr) => {
return arr.indexOf(item) === index
})
二. map()实现:
Array.prototype.myMap = function (fn) {
let arr = [];
for(let i=0; i<this.length;i++) {
let item = fn(this[i],i,this) {
arr.push(item)
}
}
return arr
}