Nonvoluntary Professional Mangling

    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.

    Keywords

    none

    Install

    npm i object-recursive-filter

    DownloadsWeekly Downloads

    4

    Version

    1.1.0

    License

    MIT

    Unpacked Size

    7.43 kB

    Total Files

    7

    Last publish

    Collaborators

    • webdacjs