/partition-interval

Partitions an interval as evenly as possible.

Primary LanguageTypeScriptApache License 2.0Apache-2.0

partition-interval

version CI gzip size brotli size Sponsor
Partitions an interval as evenly as possible.

Features

  • Lazy: returns an Iterable for the common case of not needing everything in memory at once
  • Small: just ~260 B minzipped
  • Robust: property-based testing with fast-check

Install

$ npm i partition-interval

Usage

import partitionInterval from 'partition-interval'

// Lazily iterate over the returned iterable.
for (const interval of partitionInterval([0, 99], 4)) {
  console.log(interval)
}
//=> [ 0, 24 ]
//=> [ 25, 49 ]
//=> [ 50, 74 ]
//=> [ 75, 99 ]

// Collect the returned iterable into an array.
const intervals = [...partitionInterval([-31, 89], 5)]
console.log(intervals)
//=> [ [-31, -8], [-7, 16], [17, 40], [41, 64], [65, 89] ]

Contributing

Stars are always welcome!

For bugs and feature requests, please create an issue.

For pull requests, please read the contributing guidelines.

License

Apache License 2.0

This is not an official Google product.