object-recursive-filter

1.1.0 • Public • Published

object-recursive-filter

This module can be used to recursively perform filter-in or filter-out operations on object properties based on the provided predicate. The module returns a new copy of the object so the original is not mutated.

The module doesn't have any external dependencies (only tape to run the tests).

Install

You can install with [npm]:

$ npm install --save object-recursive-filter

Usage

The module provides two self described functions: filterOutBy and filterInBy. Both require two parameters:

  • The object to filter
  • The predicate to apply.

A common use case might be to remove the undefined or null values in an object:

 
// Example1: Remove the undefined or null values
 
const orf = require('object-recursive-filter')
 
const countries = {
  Colombia: { code: 'co', area: 1197411 },
  Argentina: { code: 'ar', area: 2766890 },
  canada: { code: 'ca', area: 9984670 },
  NonExistingCountry: undefined,
  Brasil: { code: 'br', area: 8511965 },
  anotherNonExisting: null,
  europe: {
    France: {code: 'fr', area: 551394},
    NonEuropeanCountry: null
  }
}
 
orf.filterOutBy(countries, x => !x);
// Returns
// { Colombia: { code: 'co', area: 1197411 },
//   Argentina: { code: 'ar', area: 2766890 },
//   canada: { code: 'ca', area: 9984670 },
//   Brasil: { code: 'br', area: 8511965 },
//   europe: { France: { code: 'fr', area: 551394 } } }
 

Running tests

You can run the tests and check the functionality of this module using:

$ npm install && npm test

License

Copyright © 2018, Juan Convers. Released under the MIT License.

Readme

Keywords

none

Package Sidebar

Install

npm i object-recursive-filter

Weekly Downloads

4

Version

1.1.0

License

MIT

Unpacked Size

7.43 kB

Total Files

7

Last publish

Collaborators

  • webdacjs