JSFiddle - React, Tailwind, and code Playground

by Shamasis Bhattacharya

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/3.10.0/lodash.js"></script>
See console for result! 

<br/><br/>Observe that, we actually have more values after omitting!<br/>
This is theoretically correct... just a "gotcha" to be aware of.<br />
The solution is to also exclude the object's prototype

JavaScript

var OneConstructor = function () {
    this.ownOne = 'one';
    this.ownTwo = 'two';
};

OneConstructor.prototype.protoHello = 'hello';
OneConstructor.prototype.protoEek = 'eek';

var testInstance = new OneConstructor();

var omitted = _.omit(testInstance, ['protoEek', 'ownTwo']);

var solution = _.omit(testInstance, Object.keys(Object.getPrototypeOf(testInstance)).concat(['protoEek', 'ownTwo']));

console.log('original', testInstance, Object.keys(testInstance));
console.log('_.omit', omitted, Object.keys(omitted));
console.log('_.omit solution', solution, Object.keys(solution));