lazy-iterable
TypeScript icon, indicating that this package has built-in type declarations

1.0.1 • Public • Published

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.

Dependents (0)

Package Sidebar

Install

npm i lazy-iterable

Weekly Downloads

1

Version

1.0.1

License

MIT

Unpacked Size

50.6 kB

Total Files

7

Last publish

Collaborators

  • jordanbtucker