query-objects
Purpose
A utility library which filters objects from an array of objects based on a set of filter conditions.
const queryable = ; const users = firstName: 'George' lastName: 'Eracleous' age: 28 firstName: 'Erica' lastName: 'Archer' age: 50 firstName: 'Leo' lastName: 'Andrews' age: 20 ; const filters = field: 'age' value: 30 operator: 'lt' field: 'firstName' value: 'Erica' operator: 'equals' ; // Filter all users that are less than 30 years old AND their first name is Erica const res = ; // Filter all users that are less than 30 years old OR their first name is Erica const res = ;
Contents
Installation
npm install filter-objects
Usage
- Create a queryable object using
queryable(arr)
wherearr
is the array of objects you want to query.
const q = ;
- Finally get the result array using:
q; //returns an array of all objects in `arr` that satisfy EVERY filter q; //returns an array of all objects in `arr` that satisfy SOME of the filters
Filters
field
- The name of the property we will filter on
value
- The value of the property we will filter on
operator
- The filter operator. Supported operators equals
, contains
, notcontains
, gt
, gte
, lt
, lte
, ne
matchMissing
- If true
the filter will be satisfied even if field
property is not present on the object. Default is false
.
matchEmpty
- If true
the filter will be satisfied even if value
property is empty. Empty values are []
, undefined
, null
, ''
and {}
. Default is false
.
Contributing
This project is work in progress and we'd love more people contributing to it.
- Fork the repo
- Apply your changes
- Write tests
- Submit your pull request
For feedback or suggestions you can drop us a line at support@avocarrot.com