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...