deep-filter-object

1.0.0 • Public • Published

deep-filter-object NPM version

Return a deep copy of an object, recursively filtered to have only keys that match the given glob patterns.

Install with npm

npm i deep-filter-object --save

Usage

var deepFilter = require('deep-filter-object');
 
deepFilter({a: 'a', b: {a: 'a', b: {a: 'a', b: 'b', c: 'c'}}}, 'b');
//=> {b: {b: {b: 'b'}}}

Negation patterns:

deepFilter({foo: 'a', bar: {foo: 'a', bar: {foo: 'a', bar: 'b', baz: 'c'}}}, ['*', '!foo']);
//=> {bar: {bar: {bar: 'b', baz: 'c'}}}

Filter functions

deepFilter({a: 'a', b: 'b', c: 'c'}, function (value, key, obj, i) {
  return key === 'b';
});
//=> {b: 'b'}
 
deepFilter({a: 'a', b: {c: 'c', d: {e: {c: 'c', f: 'f'}}}, c: 'c'}, function (value, key, obj) {
  return key !== 'c';
});
//=> {a: 'a', b: {d: {e: {f: 'f'}}}}

Contributing

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

Run tests

Install dev dependencies:

npm i -d && npm test

Author

Jon Schlinkert

License

Copyright (c) 2015 Jon Schlinkert
Released under the MIT license


This file was generated by verb on January 19, 2015.

Dependencies (2)

Dev Dependencies (2)

Package Sidebar

Install

npm i deep-filter-object

Weekly Downloads

13

Version

1.0.0

License

MIT

Last publish

Collaborators

  • jonschlinkert