3.2 KiB
id, title, challengeType, forumTopicId, dashedName
| id | title | challengeType | forumTopicId | dashedName |
|---|---|---|---|---|
| 587d8250367417b2b2512c5e | Дізнайтесь, як працює стек | 1 | 301705 | learn-how-a-stack-works |
--description--
На вашому столі, певно, є стос книг. Ви, ймовірно, використовували функцію скасування в текстовому редакторі, правда ж? А ще, вірогідно, ви часто натискаєте на кнопку «Назад», щоб повернутися до попередньої переглянутої вкладки в застосунку.
Знаєте, що у них спільного? Всі вони зберігають дані так, щоб ви могли повернутися до них.
Верхня книга у стосі — це та, яку поклали туди останньою. Якщо ви заберете цю книгу зі стосу, то побачите наступну — ту, яку поклали передостанньою, і так далі.
А тепер подумаємо: у всіх вищенаведених прикладах використано принцип останнім прийшло — першим пішло. Ми спробуємо зімітувати його за допомогою коду.
Така схема зберігання даних називається стеком. Зокрема, нам потрібно буде реалізувати метод push(), який переносить об’єкти JavaScript до вершини стеку, та метод pop(), який вилучає об’єкт JavaScript, що на цей момент знаходиться на вершині стеку.
--instructions--
Вам дано стек домашніх завдань, поданих у вигляді масиву: "BIO12" розташовано знизу, а "PSY44" — зверху.
Змініть даний масив і розгляньте його як stack, використовуючи згадані вище методи JavaScript. Вилучіть верхній елемент "PSY44" зі стека. Потім додайте "CS50" як новий верхній елемент стеку.
--hints--
homeworkStack повинен містити лише 4 елементи.
assert(homeworkStack.length === 4);
Останнім елементом в homeworkStack має бути "CS50".
assert(homeworkStack[3] === 'CS50');
homeworkStack не повинен містити елемент "PSY44".
assert(homeworkStack.indexOf('PSY44') === -1);
Не змінюйте початкове оголошення homeworkStack.
assert(
__helpers.removeJSComments(code).match(/=/g).length === 1 &&
/homeworkStack\s*=\s*\["BIO12"\s*,\s*"HIS80"\s*,\s*"MAT122"\s*,\s*"PSY44"\]/.test(
__helpers.removeJSComments(code)
)
);
--seed--
--seed-contents--
var homeworkStack = ["BIO12","HIS80","MAT122","PSY44"];
// Only change code below this line
--solutions--
// solution required