bucket-filter
v1.0.1
Published
Array filtering using buckets. Allows infinite buckets, bucket size limit, keeps input order and discards unmatched elements.
Downloads
177
Maintainers
Readme
Bucket Filter
Array filtering using buckets. Allows infinite buckets, bucket size limit, keeps input order and discards unmatched elements.
Get Started
npm install bucket-filter
API
filter(input, buckets[, this])
Returns new Array containing values filtered by buckets
.
input
: Array input. (Array)buckets
: Array of buckets: (Array)condition
: Evaluates bucket selection. Return boolean. (Function)limit
: Optional. Bucket size limit. (Number)
this
: Optional. Value of this when executing each bucketcondition
. (Mixed)
Usage
// Note: This example uses ES6 syntax
var filter = require('bucket-filter')
var data = [
{ type: 1, title: 'foo-1-1' },
// ...
{ type: 2, title: 'foo-2-1' },
// ...
]
var buckets = [
// Include max 2 values where type is 1
{ condition: (i) => i.type === 1, limit: 2 },
// Include all values where type is 2
{ condition: (i) => i.type === 2 }
// All values not matching any condition will be dismissed
]
filter(data, buckets)
// → []
Benchmark
node benchmark.js
Results
10x array / 1x bucket x 787,188 ops/sec ±7.22% (75 runs sampled)
10x array / 2x buckets x 586,677 ops/sec ±0.67% (87 runs sampled)
10x array / 5x buckets x 255,597 ops/sec ±1.06% (89 runs sampled)
License
See the License file.