An open API service indexing awesome lists of open source software.

https://github.com/ayamflow/infinite-random-list

An infinite list of shuffled elements
https://github.com/ayamflow/infinite-random-list

Last synced: 8 months ago
JSON representation

An infinite list of shuffled elements

Awesome Lists containing this project

README

          

infinite-random-list
===

### An infinite list of shuffled elements ∞

Takes a reference set of items , returns a random item from this array, infinitely. Never pass 2 identical items in a row.

- non-deterministic
- goes through a full set before shuffling again
- will `slice()` the given array

Useful for generating an infinite grid based on different patterns/positions, or showing random informations without showing the same item multiple times.

### Installation :package:

`npm i infinite-random-list -S`

### Usage & example :floppy_disk:

```
import InfiniteRandomList from 'infinite-random-list'

let list = new InfiniteRandomList(['Emma', 'Hannah', 'Alex', 'Mia'])
list.get() // 'Alex'
list.get() // 'Mia'
list.get() // 'Emma'
list.get() // 'Hannah'
// shuffles again here
list.get() // 'Mia'
list.get() // 'Alex'
...
```

* `new InfiniteRandomList(items)`
Returns a list instance populated with `items`.

* `list.set(items)`
Sets **items** (Array) as the reference items.

* `list.get()`
Returns one item from the original set (passed using `list.set(items)` or the constructor). Always returns something (i.e. the list doesn't get empty). Always return a different item.

### License :pencil:
MIT.