UNPKG

@cycle/dom

Version:

The standard DOM Driver for Cycle.js, based on Snabbdom

33 lines (29 loc) 761 B
export default class PriorityQueue<T> { private arr: Array<T> = []; private prios: Array<number> = []; public add(t: T, prio: number): void { for (let i = 0; i < this.arr.length; i++) { if (this.prios[i] < prio) { this.arr.splice(i, 0, t); this.prios.splice(i, 0, prio); return; } } this.arr.push(t); this.prios.push(prio); } public forEach(f: (t: T, i: number, arr: Array<T>) => void): void { for (let i = 0; i < this.arr.length; i++) { f(this.arr[i], i, this.arr); } } public delete(t: T): void { for (let i = 0; i < this.arr.length; i++) { if (this.arr[i] === t) { this.arr.splice(i, 1); this.prios.splice(i, 1); return; } } } }