Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/sindresorhus/unique-random
Generate random numbers that are consecutively unique
https://github.com/sindresorhus/unique-random
Last synced: 2 days ago
JSON representation
Generate random numbers that are consecutively unique
- Host: GitHub
- URL: https://github.com/sindresorhus/unique-random
- Owner: sindresorhus
- License: mit
- Created: 2013-11-13T20:14:20.000Z (about 11 years ago)
- Default Branch: main
- Last Pushed: 2024-04-08T04:11:38.000Z (10 months ago)
- Last Synced: 2025-02-02T03:43:48.355Z (9 days ago)
- Language: JavaScript
- Homepage:
- Size: 24.4 KB
- Stars: 116
- Watchers: 8
- Forks: 15
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
- License: license
- Security: .github/security.md
Awesome Lists containing this project
- awesome-frontend - unique-random - Generate random numbers that are consecutively unique. ![](https://img.shields.io/github/stars/sindresorhus/unique-random.svg?style=social&label=Star) (Repository / Number)
- awesome-nodejs-cn - unique-random - 生成连续唯一的随机数 (包 / 数字)
- awesome-nodejs - unique-random - Generate random numbers that are consecutively unique. (Repository / Number)
- awesome-nodejs-cn - unique-random - **star:116** 生成连续惟一的随机数 (包 / 数量)
- stars - sindresorhus/unique-random - Generate random numbers that are consecutively unique (JavaScript)
- awesome-nodejs - unique-random - Generate random numbers that are consecutively unique. (Packages / Number)
- awesome-nodejs - unique-random - Generate random numbers that are consecutively unique - ★ 61 (Number)
- awesome-node - unique-random - Generate random numbers that are consecutively unique. (Packages / Number)
- awesome-nodejs-cn - unique-random - 生成连续唯一的随机数. (目录 / 数字)
README
# unique-random
> Generate random numbers that are consecutively unique
Useful for things like slideshows where you don't want to have the same slide twice in a row.
## Install
```sh
npm install unique-random
```## Usage
```js
import {consecutiveUniqueRandom} from 'unique-random';const random = consecutiveUniqueRandom(1, 10);
console.log(random(), random(), random());
//=> 5 2 6
```## API
### consecutiveUniqueRandom(minimum, maximum)
Generate random numbers that are consecutively unique, meaning that each number in the sequence is distinct from the one immediately before it.
### exhaustiveUniqueRandom(minimum, maximum)
Generate random numbers that do not repeat until the entire range has appeared.
### `consecutiveUniqueRandom` and `exhaustiveUniqueRandom`
Returns a function, that when called, will return the generated number.
The returned function is also an iterable which consumes from the same source as the function:
```js
import {exhaustiveUniqueRandom} from 'unique-random';const random = exhaustiveUniqueRandom(1, 10);
for (const number of random) {
console.log(number);// The unique numbers will be iterated over infinitely
if (stopCondition) {
break;
}
}
```> [!NOTE]
> If `minimum` is equal to `maximum`, the same value will always be returned.## Related
- [unique-random-array](https://github.com/sindresorhus/unique-random-array) - Get consecutively unique elements from an array
- [random-int](https://github.com/sindresorhus/random-int) - Generate a random integer
- [random-float](https://github.com/sindresorhus/random-float) - Generate a random float
- [random-item](https://github.com/sindresorhus/random-item) - Get a random item from an array
- [random-obj-key](https://github.com/sindresorhus/random-obj-key) - Get a random key from an object
- [random-obj-prop](https://github.com/sindresorhus/random-obj-prop) - Get a random property from an object
- [unique-random-at-depth](https://github.com/Aweary/unique-random-at-depth) - This module with an optional depth argument
- [crypto-random-string](https://github.com/sindresorhus/crypto-random-string) - Generate a cryptographically strong random string