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);
};