ForEach:
function print(i){
console.log(i)
}
const names = ["ali", "hamza", "jack"];
Array.prototype.myForEach = function(cb){
console.log(this)
for(let i=0; i<this.length; i++){
cb(this[i])
}
}
names.myForEach(print);
Map:
function multiplier(element) {
return element * 2
}
let arr = [1, 2, 3];
Array.prototype.myMap = function (cb) {
let newarr = [];
for (let i = 0; i < this.length; i++) {
newarr.push(cb(this[i]))
}
return newarr
}
let result = arr.myMap(multiplier);
console.log(result)
Filter
function filter(element) {
return element > 1
}
let arr = [1, 2, 3];
Array.prototype.myFilter = function (cb) {
let newarr = [];
for (let i = 0; i < this.length; i++) {
if(cb(this[i])){
newarr.push(this[i])
}
}
return newarr
}
let result = arr.myFilter(filter);
console.log(result)
Reduce
function sum(accumulator, element) {
return accumulator + element;
}
let arr = [1,1,1,1,1,1,1,1,1];
Array.prototype.myreduce = function (cb, initialValue) {
let accumulator = initialValue ? initialValue : undefined;
for(let i=0; i<this.length; i++){
if(accumulator !== undefined){
accumulator = cb(accumulator, this[i])
}else{
accumulator = this[i]
}
}
return accumulator
}
let result = arr.myreduce(sum);
console.log(result)
let result2 = arr.myreduce(sum, 10);
console.log(result2)