--- id: 587d8250367417b2b2512c5e title: Learn how a Stack Works challengeType: 1 videoUrl: '' localeTitle: 'Узнайте, как работает стек' --- ## Description
Вероятно, вы знакомы со стопкой книг на своем столе. Вероятно, вы использовали функцию отмены текстового редактора. Вы также, вероятно, используете для нажатия кнопки «Назад» на своем телефоне, чтобы вернуться к предыдущему виду в приложении. Вы знаете, что у них общего? Все они хранят данные таким образом, чтобы вы могли перемещаться назад. Самая верхняя книга в стеке была той, которая была помещена последней. Если вы удалите эту книгу из верхней части стека, вы откроете книгу, которая была помещена туда до последней книги, и так далее. Если вы думаете об этом, во всех приведенных выше примерах вы получаете тип обслуживания Last-In-First-Out . Мы постараемся имитировать это с помощью нашего кода. Эта схема хранения данных называется стеком . В частности, нам пришлось бы реализовать метод push() который толкает объекты JavaScript вверху стека; и pop() , который удаляет объект JavaScript, который находится в верхней части стека в текущий момент.
## Instructions
Здесь у нас есть набор домашних заданий, представленных как массив: "BIO12" находится у основания, а "PSY44" находится в верхней части стека. Измените данный массив и обработайте его как stack используя описанные выше методы JavaScript. Удалите верхний элемент "PSY44" из стека. Затем добавьте "CS50" в новый верхний элемент стека.
## Tests
```yml tests: - text: homeworkStack должен содержать только 4 элемента. testString: 'assert(homeworkStack.length === 4, "homeworkStack should only contain 4 elements.");' - text: Последним элементом homeworkStack должен быть "CS50" . testString: 'assert(homeworkStack[3] === "CS50", "The last element in homeworkStack should be "CS50".");' - text: homeworkStack не должны содержать "PSY44" . testString: 'assert(homeworkStack.indexOf("PSY44") === -1, "homeworkStack should not contain "PSY44".");' - text: Исходное объявление homeworkStack таблицы не должно быть изменено. testString: 'assert(code.match(/=/g).length === 1 && /homeworkStack\s*=\s*\["BIO12"\s*,\s*"HIS80"\s*,\s*"MAT122"\s*,\s*"PSY44"\]/.test(code), "The initial declaration of the homeworkStack should not be changed.");' ```
## Challenge Seed
```js var homeworkStack = ["BIO12","HIS80","MAT122","PSY44"]; // Only change code below this line ```
## Solution
```js // solution required ```