Array.prototype.myReduce = function (callback, initValue) {
if (Object.prototype.toString.call(callback) != "[object Function]") {
throw new TypeError(callback + "is not a function!")
}
if (this == undefined) {
throw new TypeError("this is null or not undefined!!")
}
let curentValue
let sum = 0
let index
if(initValue) {
sum = initValue
index = 0
} else {
sum = this[0]
index = 1
}
for(;index < this.length;index++) {
curentValue = this[index]
sum = callback(sum,curentValue,index,this)
}
return sum
}
let arr = [1,3,4,5,45,6,33]
let sum = arr.myReduce((sum,item) => {
return sum + item
},0)
console.log(sum) //97
Array.prototype.reduce()
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 1、What reduce() 方法 : 对累加器和数组的每个值(从左向右)应用一个函数,以将其减少为单个值。返回...
- Array的reduce()把一个函数作用在这个Array的[x1, x2, x3...]上,这个函数必须接收两个...
- 本文转载自我的个人博客。 这是一篇译文,有兴趣的同学可以阅读官方文档,图省事的同学可以直接看这篇精简版的译文。 r...
- recude 函数为 js 数组中较难理解的一个函数,其定义如下: 定义 其中callback函数有四个参数: p...
