0.1.5 • Published 6 years ago

filter-iterable v0.1.5

Weekly downloads
2
License
MIT
Repository
github
Last release
6 years ago

filter-iterable

travis ci npm version Coverage Status Dependency Status

filter-iterable exports a class that builds iterables that provide filter method.

Install

$ npm install filter-iterable --save

Usage

const FilterIterable = require('filter-iterable')

const iterable = new FilterIterable(new Set([4, 2, 7, 8, 4, 7])) // (4 2 7 8 4 7)
    .filter(e => e % 2 === 0) // (4 2 8 4)
    .filter(e => e !== 8) // (4 2 4)

// converting to array:
[...iterable] // [4 2 4]

// traversing values:
for (const val of iterable) {
    // ...
}

// creating an iterator that traverses the values
let iterator = iterable[Symbol.iterator]()
iterator.next() // {value: 4, done: false}
iterator.next() // {value: 2, done: false}
iterator.next() // {value: 4, done: false}
iterator.next() // {value: undefined, done: true}

// Infinite iterable
const naturals = {
    [Symbol.iterator]: function* () {
        let i = 1
        while(true) { yield i++ }
    }
} // (1 2 3 4...)

new FilterIterable(naturals) // (1 2 3 4 5 6 7 8 9...)
    .filter(e => e % 2 === 0) // (2 4 6 8 10...)

Support

  • Node.js >=6
  • ES2015 transpilers

License

MIT