Sequence NODE_159
Medium

Implement Custom Array.filter

JavaScript
Technical Specification

Implement a custom filter function called myFilter that works similarly to Array.prototype.filter.

Input/Output Samples
Input:[1,2,3,4].myFilter(x => x % 2 === 0)
Output:[2,4]
Optimal Logic Path
Array.prototype.myFilter = function (callback) {
  const result = [];
  for (let i = 0; i < this.length; i++) {
    if (Object.prototype.hasOwnProperty.call(this, i)) {
      if (callback(this[i], i, this)) {
        result.push(this[i]);
      }
    }
  }
  return result;
};
Architectural Deep-Dive
Similar to map, but we only store elements whose callback result is truthy.