48 lines
1000 B
Markdown
48 lines
1000 B
Markdown
tiny-queue
|
|
============
|
|
|
|
A simple FIFO queue implementation to avoid having to do `shift()`
|
|
on an array, which is slow. It's implemented in the straightforward `root -> node1 -> node2 -> etc.`
|
|
architecture that we all remember from CS 101.
|
|
|
|
This can typically be used as a drop-in replacement for an array, and it's only 38 lines of code.
|
|
|
|
### Status
|
|
|
|
[![browser support](https://ci.testling.com/nolanlawson/tiny-queue.png)](https://ci.testling.com/nolanlawson/tiny-queue)
|
|
|
|
### Usage
|
|
|
|
```
|
|
npm install tiny-queue
|
|
```
|
|
|
|
Then:
|
|
|
|
```js
|
|
var Queue = require('tiny-queue');
|
|
var queue = new Queue();
|
|
|
|
queue.push('foo');
|
|
queue.push('bar');
|
|
queue.shift(); // 'foo'
|
|
queue.shift(); //'bar'
|
|
queue.length; // 0
|
|
queue.shift(); // undefined
|
|
```
|
|
|
|
### API
|
|
|
|
The returned `Queue` object, once instantiated, only supports
|
|
four operations:
|
|
|
|
```js
|
|
queue.push()
|
|
queue.shift()
|
|
queue.slice() // returns a regular Array
|
|
queue.length
|
|
```
|
|
|
|
So it's basically a drop-in replacement for most naïve usages
|
|
of an array as a queue.
|