// 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方法
最新推荐文章于 2024-03-12 14:53:55 发布
本文介绍了JavaScript中三个重要的数组方法:reduce用于数组的累加操作,map用于数组元素转换,filter则用于筛选符合条件的元素。通过实例展示了它们的用法和应用场景,帮助提升JavaScript编程技巧。
摘要由CSDN通过智能技术生成