Spaces:
Runtime error
Runtime error
File size: 541 Bytes
b3b8f74 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | export default Queue
function Queue(initial = []) {
let xs = initial.slice()
let index = 0
return {
get length() {
return xs.length - index
},
remove: (x) => {
const index = xs.indexOf(x)
return index === -1
? null
: (xs.splice(index, 1), x)
},
push: (x) => (xs.push(x), x),
shift: () => {
const out = xs[index++]
if (index === xs.length) {
index = 0
xs = []
} else {
xs[index - 1] = undefined
}
return out
}
}
}
|