Array.prototype.myReduce = function (callback, start) {
var sum ;
var len = 0;
if (typeof start !== "undefined") {
len = this.length;
sum = start
for (let i = 0; i < len; i++) {
sum = callback(sum, this[i], i, this)
}
} else {
len = this.length - 1;
sum = this[0]
for (let i = 1; i < len; i++) {
sum = callback(sum, this[i], i, this)
}
}
return sum
}
//测试实例
var arr1 = [1, 2, 3, 4]
var res = arr1.myReduce(function (sum, item) {
return sum + item
}, 1)