@v4fire/core
Version:
V4Fire core library
53 lines (37 loc) • 1.11 kB
Markdown
# core/queue/order
This module provides a class to organize an ordered [[Queue]] data structure.
See [`core/queue`](src_core_queue.html) for more information.
## Usage
```js
import OrderedQueue from 'core/queue/order';
const
queue = new OrderedQueue<number>((a, b) => a - b);
queue.push(1);
queue.push(5);
queue.push(2);
queue.push(-1);
queue.push(5);
queue.push(2);
queue.push(-1);
queue.push(5);
console.log(queue.length); // 8
console.log(queue.head); // 5
console.log(queue.pop()); // 5
console.log(queue.head); // 5
console.log(queue.pop()); // 5
console.log(queue.pop()); // 5
console.log(queue.pop()); // 2
console.log(queue.pop()); // 2
queue.clear();
console.log(queue.length); // 0
```
### Providing a comparator
To compare different elements from the queue, a special comparator function is used, which has the same API as
the native comparator `Array.prototype.sort`. To provide a comparator, use the structure constructor.
```js
import OrderedQueue from 'core/queue/order';
const
queue = new OrderedQueue<number>((a, b) => a - b);
queue.push(1);
queue.push(5);
```