deep-condition
Simple and lightweight library for filtering arrays with predefined human-friendly conditions
For usage in browser use file source/index.js
Install
Node
npm install deep-condition --save
Usage
let filterFunction = ; let sampleData = "rank": 1 "rating": 92 "year": null "title": "The Shawshank Redemption" "rank": 2 "rating": 92 "year": 1972 "title": "The Godfather" "rank": 3 "rating": 9 "year": 1974 "title": "The Godfather: Part II" "rank": 4 "rating": 89 "year": 1966 "title": "Il buono, il brutto, il cattivo." "rank": 5 "rating": 89 "year": 1994 "title": "Pulp Fiction" "rank": 6 "rating": 89 "year": 1957 "title": "12 Angry Men" "rank": 7 "rating": 89 "year": 1993 "title": "Schindler's List" "rank": 8 "rating": 88 "year": 1975 "title": "One Flew Over the Cuckoo's Nest" "rank": 9 "rating": 88 "year": 2010 "title": "Inception" "rank": 0 "rating": 88 "year": 2008 "title": "The Dark Knight"; let filter = logic: 'or' filters: logic: 'and' filters: field: 'rating' operator: 'eq' value: 88 field: 'year' operator: 'gt' value: 2000 field: 'title' operator: 'contains' value: 'Godfather' ; let result = ; consoledirresult; /** OUTPUT:[ { rank: 2, rating: 9.2, year: 1972, title: 'The Godfather' }, { rank: 3, rating: 9, year: 1974, title: 'The Godfather: Part II' }, { rank: 9, rating: 8.8, year: 2010, title: 'Inception' }, { rank: 0, rating: 8.8, year: 2008, title: 'The Dark Knight' } ]**/
Description
Types of filter conditions (EXAMPLES)
Filter group
let filterExample = logic: 'or' filters: logic: 'and' filters: field: 'rating' operator: 'eq' value: 88 field: 'year' operator: 'gt' value: 2000 field: 'title' operator: 'contains' value: 'Godfather' ;
Simple condition
let filterExample = field: 'rating' operator: 'eq' value: 88;
Array of simple conditions
By default uses logic: AND
let filterExample = field: 'rating' operator: 'eq' value: 88 field: 'year' operator: 'eq' value: 2010;
let resultFiltering = ;
Supported types of conditions
- eq - equal
let filter = field: 'rating' operator: 'eq' value: 88;
- neq - not equal
let filter = field: 'rating' operator: 'neq' value: 88;
- isnull - is null
let filter = field: 'year' operator: 'isnull';
- isnotnull - is not null
let filter = field: 'year' operator: 'isnotnull';
- lt - less than
let filter = field: 'rating' operator: 'lt' value: 89;
- lte - less than or equal
let filter = field: 'rating' operator: 'lte' value: 89;
- gt - greater than
let filter = field: 'rating' operator: 'gt' value: 89;
- gte - greater than or equal
let filter = field: 'rating' operator: 'gte' value: 89;
- startswith - starts with
let filter = field: 'title' operator: 'startswith' value: 'The';
- endswith - ends with
let filter = field: 'title' operator: 'endswith' value: 'tion';
- contains - contains
let filter = field: 'title' operator: 'contains' value: 'Godfather';
- doesnotcontain - does not contain
let filter = field: 'title' operator: 'doesnotcontain' value: 'Godfather';
- isempty - is empty
let filter = field: 'rank' operator: 'isempty';
- isnotempty - is not empty
let filter = field: 'rank' operator: 'isnotempty';
FOR MORE EXAMPLES SEE test/filtering.js
file in package
FOR JSDOC DESCRIPTIONS SEE source/index.js
file in package
Test
Test
npm install
npm run test
Change list
Version 1.0.0
- Initial commit