map,filter,reduce

by kpulkit29

JavaScript

Array.prototype.filterCustom = function(fn) {
	let arr = [];
 	for(let i=0;i<this.length; i++) {
  		if(fn(this[i], i)) arr.push(this[i])
  }
  return arr;
}

Array.prototype.mapCustom = function(fn) {
	let arr = [];
 	for(let i=0; i<this.length; i++) {
  		arr[i] = fn(this[i]);
  }
  return arr;
}

Array.prototype.reduceCustom = function(fn, aggr) {
		let val = aggr;
    for(let i=0; i<this.length; i++) {
        val = fn(val, this[i]);
        /* console.log(val) */;
    }
    return val;
}

let arr = [1,2,3,4];
console.log(arr.filterCustom(item => item>1));
console.log(arr.mapCustom(item => item*2));
console.log(arr.reduceCustom((total, item) => total*item, 1));