Vấn đề
Chúng tôi được yêu cầu viết một hàm JavaScript nhận trong mảng một hàm gọi lại và một giá trị ban đầu.
Hàm sẽ tích lũy một giá trị qua quá trình lặp lại của mảng và cuối cùng trả về giá trị giống như Array.prototype.reduce () thực hiện.
Ví dụ
Sau đây là mã -
const arr = [1, 2, 3, 4, 5]; const sum = (a, b) => a + b; Array.prototype.customReduce = function(callback, initial){ if(!initial){ initial = this[0]; }; let res = initial; for(let i = initial === this[0] ? 1 : 0; i < this.length; i++){ res = callback(res, this[i]); }; return res; }; console.log(arr.customReduce(sum, 0));
Đầu ra
Sau đây là đầu ra của bảng điều khiển -
15