amreshpro / jspro

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

JSPRO

Polyfills

map

Array.prototype.myMap = function (cb) {
  let temp = [];
  for (let i = 0; i < this.length; i++) {
    temp.push(cb(this[i], i, this));
  }
  return temp;
};

filter

// arr.filter((curr,i,arr))
Array.prototype.myFilter = function (cb) {
  let temp = [];
  for (let i = 0; i < this.length; i++) {
  let filterValue = cb(this[i], i, this)
  if(filterValue) temp.push(filterValue);
  }
  return temp;
};

reduce

If intialValue provided then iteration start with zero/0 if initialValue is not provided it will take acc = arr[0] and iteration start from 1

Array.prototype.myReduce = function (cb, initialValue=this[0]) {
  if (this.length == 0) return null;
  let i=1;
if(initialValue !=this[0])  i=0
  let acc = initialValue;
  for (i; i < this.length; i++) {
    acc = cb(acc, this[i], i, this);
  }
  return acc;
};

About


Languages

Language:JavaScript 100.0%