Array.prototype.reduce()

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
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容