Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/antonharbers/ranger
NPM - A Typescript and Javascript utility class for an iterable range
https://github.com/antonharbers/ranger
node npm package range typescript
Last synced: about 1 month ago
JSON representation
NPM - A Typescript and Javascript utility class for an iterable range
- Host: GitHub
- URL: https://github.com/antonharbers/ranger
- Owner: AntonHarbers
- Created: 2024-11-05T15:38:24.000Z (about 2 months ago)
- Default Branch: main
- Last Pushed: 2024-11-06T21:54:44.000Z (about 2 months ago)
- Last Synced: 2024-11-06T22:35:28.911Z (about 2 months ago)
- Topics: node, npm, package, range, typescript
- Language: TypeScript
- Homepage: https://www.npmjs.com/package/@cosmicode/ranger
- Size: 5.86 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Ranger
A Typescript and Javascript utility class for an iterable range with the following functionality:
### Constructor
The Ranger constructor takes 3 parameters:
Start : number
End : number
Step : number (optional defaults to 1)```js
const { Ranger } = require('@comsicode/range-js');const range = new Ranger(0, 10, 2);
```### Iterable Range
Range is iterable and will iterate from the start (inclusive) to the end (inclusive) at the step rate.
```js
for (let i of new Ranger(0, 3)) {
console.log(i); // Logs 0, 1, 2, 3
}
```### Random Number Method
This method has no parameters and returns a random number from the given range.
```js
let random = new Ranger(0, 10).getRandom(); // will return a random number between 0 (inclusive) and 10 (inclusive)
```### Contains Number Method
This method takes one parameter of type number and returns a boolean for if the number is contained within the given range.
```js
let contains = new Ranger(0, 10, 2).contains(2); // will return true
```### ToArray Method
This method takes no parameters and returns the range as a flat array
```js
let arr = new Ranger(0, 10, 3).toArray(); // will return [0, 3, 6, 9]
```### ToReverseArray Method
This method takes no parameters and returns the reversed range as a flat array
```js
let revArr = new Ranger(0, 10, 3).toArray(); // will return [9, 6, 3, 0]
```### Get length method
Will return the amount of numbers in our range
```js
let length = new Ranger(0, 10, 3).length; // returns 4
```### ToString method
Will return a joined array like so:
```js
let string = new Ranger(0, 10, 3).toString(); // return "[0, 3, 6, 9]"
```### Reverse method
Will reverse the range of your ranger
```js
const range = new Ranger(0, 10, 2);
range.reverse(); // range becomes start: 10, end: 0, step: -2
```### Filter method
Accepts a callback as a parameter, returns the filtered array on the range
```js
const range = new Ranger(1, 10, 2); // [1, 3, 5, 7, 9]
console.log(range.filter((x) => x % 3 === 0)); // [3, 9]
```### Map method
Accepts a callback as a parameter, returns the mapped array on the range
```js
const range = new Ranger(1, 10, 2); // [1, 3, 5, 7, 9]
console.log(range.map((x) => x * 2)); // [2, 6, 10, 14, 18]
```### Clone method
Returns a clone of the ranger
```js
const range = new Ranger(1, 10, 2); // [1, 3, 5, 7, 9]
const range2 = range.clone(); // [1, 3, 5, 7, 9]
```