https://github.com/blond/rangem
Range manipulation
https://github.com/blond/rangem
range segment subtract union
Last synced: 4 months ago
JSON representation
Range manipulation
- Host: GitHub
- URL: https://github.com/blond/rangem
- Owner: blond
- License: mit
- Created: 2016-08-22T18:17:44.000Z (about 9 years ago)
- Default Branch: master
- Last Pushed: 2017-03-10T17:52:11.000Z (over 8 years ago)
- Last Synced: 2025-05-22T02:17:12.648Z (5 months ago)
- Topics: range, segment, subtract, union
- Language: JavaScript
- Size: 11.7 KB
- Stars: 2
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
rangem
======[![NPM Status][npm-img]][npm]
[![Travis Status][test-img]][travis]
[![Coverage Status][coverage-img]][coveralls][npm]: https://www.npmjs.org/package/rangem
[npm-img]: https://img.shields.io/npm/v/rangem.svg[travis]: https://travis-ci.org/blond/rangem
[test-img]: https://img.shields.io/travis/blond/rangem.svg?label=tests[coveralls]: https://coveralls.io/r/blond/rangem
[coverage-img]: https://img.shields.io/coveralls/blond/rangem.svgThe tool to range manipulation.
Install
-------```shell
$ npm install --save rangem
```Usage
-----```js
const rangem = require('rangem');const ranges = rangem.union([{ from: 1, to: 5 }, { from: 5, to: 10 }]);
// ➜ [{ from: 1, to: 10 }]
const range = ranges.pop(); // { from: 1, to: 3 }
rangem.subtract(range, [{ from: 5, to: 7 }]);
// ➜ [{ from: 1, to: 5 }, { from: 7, to: 10 }]
```API
---* [union(ranges)](#unionranges)
* [subtract(range, ranges)](#subtractrange-ranges)### union(ranges)
Unions intersecting ranges.
```js
const union = require('rangem').union;const ranges = [{ from: 1, to: 5 }, { from: 3, to: 6 }, { from: 10, to: 20 }];
union(ranges);
// ➜ [{ from: 1, to: 6 }, { from: 10, to: 20 }]
```#### ranges
Type: `{from: number, to: number}[]`
Default: `[]`The ranges to union.
### subtract(range, ranges)
Subtract ranges from range.
```js
const subtract = require('rangem').subtract;const fromRange = { from: 10, to: 20 };
const whatRanges = [{ from: 10, to: 12 }, { from: 15, to: 18 }]subtract(fromRange, whatRanges);
// ➜ [{ from: 12, to: 15 }, { from: 18, to: 20 }]
```### range
Type: `{from: number, to: number}`
The range from which will be deducted.
#### ranges
Type: `{from: number, to: number}[]`
Default: `[]`The ranges which will be deducted.
License
-------MIT © [Andrew Abramov](https://github.com/blond)