Return a copy of an object excluding the given key, or array of keys. Also accepts an optional filter function as the last argument.
Follow this project's author, Jon Schlinkert, for updates on this project and others.
Install
Install with npm:
$ npm install --save object.omit
Usage
var omit = require('object.omit');
Pass a string key
to omit:
omit({a: 'a', b: 'b', c: 'c'}, 'a')
//=> { b: 'b', c: 'c' }
Pass an array of keys
to omit:
omit({a: 'a', b: 'b', c: 'c'}, ['a', 'c'])
//=> { b: 'b' }
Returns the object if no keys are passed:
omit({a: 'a', b: 'b', c: 'c'})
//=> {a: 'a', b: 'b', c: 'c'}
Returns an empty object if no value is passed.
omit()
//=> {}
Filter function
An optional filter function may be passed as the last argument, with or without keys passed on the arguments:
filter on keys
var res = omit({a: 'a', b: 'b', c: 'c'}, function (val, key) {
return key === 'a';
});
//=> {a: 'a'}
filter on values
var fn = function() {};
var obj = {a: 'a', b: 'b', c: fn};
var res = omit(obj, ['a'], function (val, key) {
return typeof val !== 'function';
});
//=> {b: 'b'}
About
Related projects
You might also be interested in these projects:
- object.defaults: Like
extend
but only copies missing properties/values to the target object. | homepage - object.filter: Create a new object filtered to have only properties for which the callback returns true. | homepage
- object.pick: Returns a filtered copy of an object with only the specified keys, similar to
_.pick… [more](https://github.com/jonschlinkert/object.pick) | [homepage](https://github.com/jonschlinkert/object.pick "Returns a filtered copy of an object with only the specified keys, similar to
_.pick` from lodash / underscore.") - object.pluck: Like pluck from underscore / lo-dash, but returns an object composed of specified properties, with… more | homepage
- object.reduce: Reduces an object to a value that is the accumulated result of running each property… more | homepage
Contributing
Pull requests and stars are always welcome. For bugs and feature requests, please create an issue.
Contributors
Commits | Contributor |
---|---|
21 | jonschlinkert |
1 | bfred-it |
Building docs
(This project's readme.md is generated by verb, please don't edit the readme directly. Any changes to the readme must be made in the .verb.md readme template.)
To generate the readme, run the following command:
$ npm install -g verbose/verb#dev verb-generate-readme && verb
Running tests
Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
$ npm install && npm test
Author
Jon Schlinkert
License
Copyright © 2017, Jon Schlinkert. Released under the MIT License.
This file was generated by verb-generate-readme, v0.6.0, on September 03, 2017.