Skip to content


Repository files navigation

object.omit NPM version NPM monthly downloads NPM total downloads Linux Build Status

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 with npm:

$ npm install --save object.omit


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.

//=> {}

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'}


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]( | [homepage]( "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


Pull requests and stars are always welcome. For bugs and feature requests, please create an issue.


Commits Contributor
21 jonschlinkert
1 bfred-it

Building docs

(This project's is generated by verb, please don't edit the readme directly. Any changes to the readme must be made in the 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


Jon Schlinkert


Copyright © 2017, Jon Schlinkert. Released under the MIT License.

This file was generated by verb-generate-readme, v0.6.0, on September 03, 2017.