Filters an iterable object so that it only yields values which pass a test function.
Optionally lets you set a numeric limit on total filtered values yielded.
Requires Node.js 6.0.0 or above.
npm i filter-iter
The module exports a single function.
- Bindable:
iter
(iterable): The iterable whose values should be filtered. - Optional:
test
(Function): A callback to which each iterated value is passed. The callback should return true if the value should be kept. If this argument is omitted, values will be filtered by truthiness. - Object argument:
- Optional:
limit
(integer): The maximum number of items to yield. Defaults toInfinity
.
- Optional:
An iterable object with the filtered values from iter
.
const filter = require('filter-iter')
const even = n => n % 2 === 0
filter([1, 2, 3, 4, 5], even) // yields 2 and 4
// A limit parameter is supported.
filter([1, 2, 3, 4, 5], even, {limit: 1}) // yields 2
// Values are filtered by truthiness if no callback is provided.
filter([0, 1, 2, 3]) // yields 1, 2, and 3
filter([0, 1, 2, 3], {limit: 2}) // yields 1 and 2
// Supports the bind operator
[0, 1, 2]::filter() // yields 1 and 2
[1, 2, 3, 4, 5]::filter(even) // yields 2 and 4
[1, 2, 3, 4, 5]::filter(even, {limit: 1}) // yields 2
- partition-iterable: Divides iterated values into those that match a filter and those that don’t.
- reduce-iterable: Applies a function to iterated values to reduce them to a single value.
- unique-iterable: Filters an iterable object so it doesn’t yield the same value more than once.
- unique-iterable-by: Filters yielded values by testing uniqueness with an index, key, or callback.