Merge pull request #4 from keathleydavidj/filter-query
Add .filter and .filterBy methods
This commit is contained in:
commit
d54a181fac
2 changed files with 30 additions and 0 deletions
10
index.js
10
index.js
|
@ -10,6 +10,16 @@ module.exports = class Query {
|
|||
return this.data;
|
||||
};
|
||||
|
||||
filter (func) {
|
||||
this.data = this.data.filter(func);
|
||||
return this;
|
||||
};
|
||||
|
||||
filterBy (key, func) {
|
||||
this.data = this.data.filter(item => func(item[key]));
|
||||
return this;
|
||||
};
|
||||
|
||||
search (key, term, score = 0) {
|
||||
switch (typeof term) {
|
||||
case 'boolean':
|
||||
|
|
|
@ -66,6 +66,26 @@ test('should sort by string name', () => {
|
|||
expect(query[0].name).toBe('Dudley Conner');
|
||||
});
|
||||
|
||||
test('should filter', () => {
|
||||
let isAgeOver33 = a => a.age > 33;
|
||||
|
||||
let query = new Query(TestData)
|
||||
.filter(isAgeOver33)
|
||||
.results;
|
||||
|
||||
expect(query[0].name).toBe('Howard Buckley');
|
||||
});
|
||||
|
||||
test('should filter by key', () => {
|
||||
let isNumGT33 = num => num > 33;
|
||||
|
||||
let query = new Query(TestData)
|
||||
.filterBy('age', isNumGT33)
|
||||
.results;
|
||||
|
||||
expect(query[0].name).toBe('Howard Buckley');
|
||||
});
|
||||
|
||||
test('should chain everything together', () => {
|
||||
let query = new Query(TestData)
|
||||
.search('isActive', true)
|
||||
|
|
Loading…
Add table
Reference in a new issue