lazy-iterable
v1.0.1
Published
An iterable object that lazily implements many Array.prototype members.
Downloads
5
Readme
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) // true
LazyIterable
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
concat
entries
filter
keys
map
reverse
slice
sort
values
- Eager members:
length
every
find
findIndex
forEach
includes
indexOf
itemAt
join
reduce
reduceRight
some
toArray
reverse
and sort
each return a new LazyIterable
whereas Array
performs
the action in-place.
Read more in the API Documentation.