Skip to content

Instantly share code, notes, and snippets.

@anish000kumar
Last active December 11, 2017 21:13
Show Gist options
  • Save anish000kumar/edf7e4947c042628b1815a52c318803a to your computer and use it in GitHub Desktop.
Save anish000kumar/edf7e4947c042628b1815a52c318803a to your computer and use it in GitHub Desktop.
var Queue = (()=>{
const map = new WeakMap();
let _items = []
class Queue{
constructor(...items){
//initialize the items in queue
map.set(this, []);
_items = map.get(this);
// enqueuing the items passed to the constructor
this.enqueue(...items)
}
enqueue(...items){
//push items into the queue
items.forEach( item => _items.push(item) )
return this;
}
dequeue(count=1){
//pull out the first item from the queue
_items.splice(0,count);
return this;
}
peek(){
//peek at the first item from the queue
return _items[0]
}
size(){
//get the length of queue
return _items.length
}
isEmpty(){
//find whether the queue is empty or no
return _items.length===0
}
toArray(){
return _items
}
}
return Queue
})()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment