**题目:** 请编写一个方法 `reduceArr`,实现与 ES5 规范中数组的 reduce 方法同样的功能 **相关:** [第 22 期(ECMAScript-原型链 继承):实现 Array map](https://github.com/fezaoduke/fe-practice-hard/issues/25) **测试用例:** ```js var data = [1, 2, 3, 4]; var result1 = data.reduceArr(function(total, cur, idx, arr) { return total + cur; }); var result2 = data.reduceArr(function(total, cur, idx, arr) { return total + cur; }, 100); console.log(result1); // 10 console.log(result2); // 110 ``` ---- **参考答案:** ```js Array.prototype.reduceArr = function(fn, initialVal) { var arr = this; var result = arr[0]; var startIdx = 1; if (typeof initialVal !== 'undefined') { result = initialVal; startIdx = 0; } for (var i = startIdx; i < arr.length; i++) { result = fn(result, arr[i], i, arr); } return result; }; ```
Activity