--- id: 587d8250367417b2b2512c60 title: Create a Queue Class challengeType: 1 videoUrl: '' localeTitle: Crear una clase de cola --- ## Description
Al igual que las pilas, las colas son una colección de elementos. Pero a diferencia de las pilas, las colas siguen el principio FIFO (primero en entrar, primero en salir). Los elementos agregados a una cola se empujan a la cola, o al final, de la cola, y solo se permite eliminar el elemento en la parte delantera de la cola. Podríamos usar una matriz para representar una cola, pero al igual que las pilas, queremos limitar la cantidad de control que tenemos sobre nuestras colas. Los dos métodos principales de una clase de cola son la puesta en cola y el método de salida. El método de puesta en cola empuja un elemento a la cola de la cola, y el método de salida de cola elimina y devuelve el elemento en la parte delantera de la cola. Otros métodos útiles son los métodos de frente, tamaño e isEmpty. Instrucciones Escriba un método de puesta en cola que empuja un elemento a la cola de la cola, un método de salida de cola que elimina y devuelve el elemento frontal, un método frontal que nos permite ver el elemento frontal, un método de tamaño que muestra la longitud y un método isEmpty para comprobar si la cola está vacía.
## Instructions
## Tests
```yml tests: - text: Su clase de Queue debe tener un método de enqueue en enqueue . testString: 'assert((function(){var test = new Queue(); return (typeof test.enqueue === "function")}()), "Your Queue class should have a enqueue method.");' - text: Tu clase de Queue debe tener un método de dequeue . testString: 'assert((function(){var test = new Queue(); return (typeof test.dequeue === "function")}()), "Your Queue class should have a dequeue method.");' - text: Tu clase de Queue debe tener un método front . testString: 'assert((function(){var test = new Queue(); return (typeof test.front === "function")}()), "Your Queue class should have a front method.");' - text: Tu clase de Queue debe tener un método de size . testString: 'assert((function(){var test = new Queue(); return (typeof test.size === "function")}()), "Your Queue class should have a size method.");' - text: Tu clase de Queue debe tener un método isEmpty . testString: 'assert((function(){var test = new Queue(); return (typeof test.isEmpty === "function")}()), "Your Queue class should have an isEmpty method.");' - text: El método de dequeue debe eliminar y devolver el elemento frontal de la cola testString: 'assert((function(){var test = new Queue(); test.enqueue("Smith"); return (test.dequeue() === "Smith")}()), "The dequeue method should remove and return the front element of the queue");' - text: El método front debe devolver el valor del elemento frontal de la cola testString: 'assert((function(){var test = new Queue(); test.enqueue("Smith"); test.enqueue("John"); return (test.front() === "Smith")}()), "The front method should return value of the front element of the queue");' - text: El método de size debe devolver la longitud de la cola testString: 'assert((function(){var test = new Queue(); test.enqueue("Smith"); return (test.size() === 1)}()), "The size method should return the length of the queue");' - text: El método isEmpty debería devolver false si hay elementos en la cola testString: 'assert((function(){var test = new Queue(); test.enqueue("Smith"); return !(test.isEmpty())}()), "The isEmpty method should return false if there are elements in the queue");' ```
## Challenge Seed
```js function Queue () { var collection = []; this.print = function() { console.log(collection); }; // Only change code below this line // Only change code above this line } ```
## Solution
```js // solution required ```