Files

3.3 KiB
Raw Permalink Blame History

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