JSFiddle - React, Tailwind, and code Playground

HTML

<div>
    <button onclick="cutObject()">Test with Object</button>
</div>
<div>
    <button onclick="cutArray();">Test with Array</button>
</div>

*look at console*

JavaScript

var API = {};

API.cut = function(data, fn) {
  return this.cut[data.constructor](data, fn);
};

API.cut[Object] = function(data, fn) {
  for(var prop in data) {
    if(fn(prop, data[prop])) {delete data[prop]; }
  }
  return data;
};

API.cut[Array] = function(data, fn) {
  for(var i=data.length-1; i>-1; i--) {
    if(fn(data[i], i)) {data.splice(i, 1)} 	
  }
  return data;	
};

// Test data/implementation
var obj = {person: 'forest', job: 'le douche'};
var arr = [234, {name: 'god'}, 'foo', undefined];

window.cutObject = function() {
    API.cut(obj, function(key, val) {
        return key === 'person';
    });
    console.log(obj);
};

window.cutArray = function() {
    API.cut(arr, function(itm, idx) {
        return itm && itm.name === 'god';
    });
    console.log("arr", arr);
    
    var arr2 = _.filter(arr, function(itm){return itm && itm.name === 'god';})
    console.log("arr2", arr2);

 };