1
2
3
4
5
6
7
8
9
Array.prototype.myReduce = function (callback, initialValue) {
let acc = initialValue === undefined ? this[0] : initialValue;
this.forEach((element) => {
acc = callback(acc, element);
});
return acc;
};

console.log([1, 2, 3].myReduce((acc, n) => acc + n, 1000));
1
2
3
4
5
6
7
8
9
10
Array.prototype.myMap = function (callback) {
let result = [];
this.forEach((n, i) => {
result.push(callback(n, i));
});
return result;
};

console.log([1, 2, 3].myMap((n, i) => n * 3));
console.log(Array.prototype.myMap.call([1, 2, 3], (n, i) => n * 10));

Comment