deep-filter
Recursively filters collections (arrays and objects).
Installation
$ npm install deep-filter
- NPM
$ bower install deep-filter
- bower
The browser file is named index.umd.js
which supports CommonJS, AMD and globals (deepFilter
).
If you want to run this module on old browsers, you must include es5-shim.
Usage
Examples bellow are based on nodejs
.
// Example 1 - Remove all strings equal to 'foo'var deepfilter = ; ; /*{ prop2: [ 'bar' ], prop3: [], prop4: { prop6: 'bar' }} */ // Example 2 - Filter empty valuesvar deepfilter = ; { var key; if Array return valuelength > 0; else if !!value && typeof value === 'object' && valueconstructor === Object for key in value return true; return false; else if typeof value === 'string' return valuelength > 0; else return value != null; } ; /*{ something: [ { colors: ['red', 'green'], cars: { audi: 'nice', vw: 'good' } } ], foo: 'bar'});*/ // Example 3 - Filter empty values + trim strings// Just to demonstrate that subject properties can be manipulated while filteringvar deepfilter = ; { var key; if Array return valuelength > 0; else if !!value && typeof value === 'object' && valueconstructor === Object for key in value return true; return false; else if typeof value === 'string' subjectprop = value = value; return valuelength > 0; else return value != null; } ; /*{ something: [ { colors: ['red', 'green'], cars: { audi: 'nice', vw: 'good' } } ], foo: 'bar'});*/
Tests
$ npm test
License
Released under the MIT License.