JavaScript Queue
Blogs20172017-01-12
JavaScript Queue
Want to write a JavaScript queue? here is an example: http://stackoverflow.com/questions/1590247/how-do-you-implement-a-stack-and-a-queue-in-javascript:
var Queue = function() {
this.first = null;
this.last = null;
this.size = 0;
};
var Node = function(data) {
this.data = data;
this.next = null;
};
Queue.prototype.enqueue = function(data) {
var node = new Node(data);
if (!this.first){ // for empty list first and last are the same
this.first = node;
this.last = node;
} else { // otherwise we stick it on the end
this.last.next=node;
this.last=node;
}
this.size += 1;
return node;
};
Queue.prototype.dequeue = function() {
if (!this.first) //check for empty list
return null;
temp = this.first; // grab top of list
if (this.first==this.last) {
this.last=null; // when we need to pop the last one
}
this.first = this.first.next; // move top of list down
this.size -= 1;
return temp;
};To use the queue,
var queue = new Queue();
queue.enqueue('any object');
queue.enqueue('any callback instance');
queue.enqueue('mix');Actually, there are other ways to do so, such as React-Redux keep a global store, or use module pattern to expose pop, push, enqueue, dequeue etc.
