// reduce
Array.prototype.myReduce = function(fn,initValue) {
let acc = initValue || this[0]
let startIndex = initValue ? 0 : 1
for(let i = startIndex; i < this.length; i++) {
acc = fn(acc,this[i],i,this)
}
return acc
}
// map
Array.prototype.myMap = function(fn,context) {
let arr = this,ans = []
for(let i = 0; i < arr.length; i++) {
ans.push(fn.call(context,arr[i],i,arr))
}
return ans
}
// filter
Array.prototype.myFilter = function(fn,context) {
let arr = this,ans = []
for(let i = 0; i < arr.length; i++) {
let result = fn.call(context,arr[i],i,arr)
result && ans.push(arr[i])
}
return ans
}
JS手写数组map、filter、reduce方法
最新推荐文章于 2022-11-25 20:42:24 发布