• Blogs (9)
    • 📱 236 - 992 - 3846

      📧 jxjwilliam@gmail.com

    • Version: ‍🚀 1.1.0
  • 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.