--- id: 587d8250367417b2b2512c60 title: Create a Queue Class challengeType: 1 videoUrl: '' localeTitle: Создание класса очереди --- ## Description
Как и стеки, очереди представляют собой набор элементов. Но, в отличие от стеков, очереди следуют принципу FIFO (First-In First-Out). Элементы, добавленные в очередь, помещаются в хвост или конец очереди, и только элемент в передней части очереди разрешен для удаления. Мы могли бы использовать массив для представления очереди, но точно так же, как стеки, мы хотим ограничить количество контроля над нашими очередями. Двумя основными методами класса очереди являются метод enqueue и dequeue. Метод enqueue подталкивает элемент к хвосту очереди, а метод dequeue удаляет и возвращает элемент в передней части очереди. Другими полезными методами являются методы front, size и isEmpty. Инструкции. Напишите метод enqueue, который подталкивает элемент к хвосту очереди, метод dequeue, который удаляет и возвращает передний элемент, передний метод, который позволяет нам видеть передний элемент, метод размера, который показывает длину, и метод isEmpty чтобы проверить, пуста ли очередь.
## Instructions
## Tests
```yml tests: - text: Класс Queue должен иметь метод enqueue . testString: 'assert((function(){var test = new Queue(); return (typeof test.enqueue === "function")}()), "Your Queue class should have a enqueue method.");' - text: Класс Queue должен иметь метод dequeue . testString: 'assert((function(){var test = new Queue(); return (typeof test.dequeue === "function")}()), "Your Queue class should have a dequeue method.");' - text: Класс Queue должен иметь front метод. testString: 'assert((function(){var test = new Queue(); return (typeof test.front === "function")}()), "Your Queue class should have a front method.");' - text: Класс Queue должен иметь метод size . testString: 'assert((function(){var test = new Queue(); return (typeof test.size === "function")}()), "Your Queue class should have a size method.");' - text: Класс Queue должен иметь метод isEmpty . testString: 'assert((function(){var test = new Queue(); return (typeof test.isEmpty === "function")}()), "Your Queue class should have an isEmpty method.");' - text: Метод dequeue должен удалять и возвращать передний элемент очереди 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: '' 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: Метод size должен возвращать длину очереди 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: Метод isEmpty должен возвращать false если в очереди есть элементы 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 ```