1.0.1 • Published 7 years ago
lazy-iterable v1.0.1
LazyIterable
An iterable object that lazily implements many Array.prototype members.
function * generator () {
yield 1
yield 2
yield 3
}
const lazy = new LazyIterable(generator)
const array = lazy.map(v => v * 2).toArray()
console.log(array) // [2, 4, 6]The advantage that LazyIterable has over Array is that the its source is
evaluated as late as possible.
let iterated = false
function * generator () {
iterated = true
yield 1
yield 2
yield 3
}
let lazy = new LazyIterable(generator)
console.log(iterated) // false
lazy = lazy.map(v => v * 2)
console.log(iterated) // false
const array = lazy.toArray()
console.log(iterated) // trueLazyIterable implements most of the read-only members of Array.prototype as
well as a couple in-place members in a read-only fashion.
- Lazy members
concatentriesfilterkeysmapreverseslicesortvalues
- Eager members:
lengtheveryfindfindIndexforEachincludesindexOfitemAtjoinreducereduceRightsometoArray
reverse and sort each return a new LazyIterable whereas Array performs
the action in-place.
Read more in the API Documentation.