3.3 KiB
id, title, challengeType, forumTopicId, dashedName
id | title | challengeType | forumTopicId | dashedName |
---|---|---|---|---|
587d8250367417b2b2512c5e | Основи роботи зі стеком | 1 | 301705 | learn-how-a-stack-works |
--description--
На вашому столі, певно, є стос книг. Ви, ймовірно, використовували функцію скасування в текстовому редакторі, правда ж? А ще, вірогідно, ви часто натискаєте на кнопку "Назад" у вашому телефоні, щоб повернутися до попередньої переглянутої вкладки в застосунку.
Знаєте, що у них спільного? Всі вони зберігають дані так, щоб ви могли повернутися до них.
Верхня книга у стосі це та, яку поклали туди останньою. Якщо ви заберете цю книгу зі стосу, то побачите наступну - ту, яку поклали туди перед останньою, і так далі.
А тепер подумаймо: у всіх вищенаведених прикладах ви отримуєте тип сервісу Last-In-First-Out (Останній прийшов - перший пішов). Ми спробуємо зімітувати цей принцип за допомогою нашого коду.
Така схема зберігання даних називається стеком. Зокрема, нам потрібно буде реалізувати метод 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(
code.match(/=/g).length === 1 &&
/homeworkStack\s*=\s*\["BIO12"\s*,\s*"HIS80"\s*,\s*"MAT122"\s*,\s*"PSY44"\]/.test(
code
)
);
--seed--
--seed-contents--
var homeworkStack = ["BIO12","HIS80","MAT122","PSY44"];
// Only change code below this line
--solutions--
// solution required