reject method

it returns opposite value to filter callback

by Artem

JavaScript

'use strict';

Array.prototype.reject = function(callback) {
  function modify(func, context) {
    return function() {
      return !func.apply(context, arguments);
    }
  }
  const modified = modify(callback, this);
  return this.filter(modified);
};

const arr = [{
  name: 'One',
  species: 'dog'
}, {
  name: 'Two',
  species: 'dog'
}, {
  name: 'Three',
  species: 'cat'
}];

function isDog(element) {
  return element.species === 'dog';
}

const result = arr.reject(isDog);
console.log(result);