4.0 KiB
		
	
	
	
	
	
	
	
			
		
		
	
	
			4.0 KiB
		
	
	
	
	
	
	
	
id, title, challengeType, forumTopicId
| id | title | challengeType | forumTopicId | 
|---|---|---|---|
| 587d8250367417b2b2512c60 | Create a Queue Class | 1 | 301631 | 
Description
Instructions
enqueue method that pushes an element to the tail of the queue, a dequeue method that removes and returns the front element, a front method that lets us see the front element, a size method that shows the length, and an isEmpty method to check if the queue is empty.
Tests
tests:
  - text: Your <code>Queue</code> class should have a <code>enqueue</code> method.
    testString: assert((function(){var test = new Queue();  return (typeof test.enqueue === 'function')}()));
  - text: Your <code>Queue</code> class should have a <code>dequeue</code> method.
    testString: assert((function(){var test = new Queue();  return (typeof test.dequeue === 'function')}()));
  - text: Your <code>Queue</code> class should have a <code>front</code> method.
    testString: assert((function(){var test = new Queue();  return (typeof test.front === 'function')}()));
  - text: Your <code>Queue</code> class should have a <code>size</code> method.
    testString: assert((function(){var test = new Queue();  return (typeof test.size === 'function')}()));
  - text: Your <code>Queue</code> class should have an <code>isEmpty</code> method.
    testString: assert((function(){var test = new Queue();  return (typeof test.isEmpty === 'function')}()));
  - text: The <code>dequeue</code> method should remove and return the front element of the queue
    testString: assert((function(){var test = new Queue();  test.enqueue('Smith'); test.enqueue('John'); return (test.dequeue() === 'Smith')}()));
  - text: The <code>front</code> method should return value of the front element of the queue
    testString: assert((function(){var test = new Queue();  test.enqueue('Smith'); test.enqueue('John'); return (test.front() === 'Smith')}()));
  - text: The <code>size</code> method should return the length of the queue
    testString: assert((function(){var test = new Queue();  test.enqueue('Smith'); return (test.size() === 1)}()));
  - text: The <code>isEmpty</code> method should return <code>false</code> if there are elements in the queue
    testString: assert((function(){var test = new Queue();  test.enqueue('Smith'); return !(test.isEmpty())}()));
Challenge Seed
function Queue() {
  var collection = [];
  this.print = function() {
    console.log(collection);
  };
  // Only change code below this line
  // Only change code above this line
}
Solution
function Queue () { 
    var collection = [];
    this.print = function() {
        console.log(collection);
    };
    // Only change code below this line
    this.enqueue = function(item) {
        collection.push(item);
    }
    this.dequeue = function() {
        return collection.shift();
    }
    this.front = function() {
        return collection[0];
    }
    this.size = function(){
        return collection.length;
    }
    this.isEmpty = function() {
        return collection.length === 0 ? true : false;
    }
    // Only change code above this line
}