Как реализуешь стек

Ответ

Стек — структура данных по принципу LIFO (Last In, First Out). В JavaScript его можно реализовать на массиве, используя методы push (добавление) и pop (удаление):

class Stack {
  constructor() {
    this.items = [];
  }

  push(element) {
    this.items.push(element);
  }

  pop() {
    if (this.isEmpty()) return null;
    return this.items.pop();
  }

  peek() {
    return this.items[this.items.length - 1];
  }

  isEmpty() {
    return this.items.length === 0;
  }

  size() {
    return this.items.length;
  }
}

// Пример использования
const stack = new Stack();
stack.push(1);
stack.push(2);
console.log(stack.pop()); // 2

Ответ 18+ 🔞

О, смотри-ка, стек! Ну это ж классика, как борщ с пампушками, только в мире данных. Представь себе стопку тарелок, ёпта — последнюю, которую поставил, снимаешь первой. Это и есть LIFO, блядь, Last In, First Out, если по-умному.

Вот смотри, в JavaScript его проще всего на обычном массиве сделать, потому что у массива уже есть всё, что надо. Берёшь методы push и pop — и вуаля, готово, в рот меня чих-пых! push — это как поставить тарелку сверху, pop — снять верхнюю. Элементарно, Ватсон!

Вот, гляди, как это выглядит в коде, я прям с комментариями, чтоб понятнее было:

class Stack {
  constructor() {
    this.items = []; // тут всё и будет храниться, как в чулане
  }

  push(element) {
    this.items.push(element); // кидаем элемент наверх стопки, и всё
  }

  pop() {
    if (this.isEmpty()) return null; // если стопка пустая, то и брать нечего, возвращаем null, чтоб не словить ошибку
    return this.items.pop(); // а вот тут снимаем верхний элемент и отдаём
  }

  peek() {
    return this.items[this.items.length - 1]; // подсматриваем, что лежит наверху, но не трогаем — как подглядеть за соседкой в душе, блядь
  }

  isEmpty() {
    return this.items.length === 0; // проверяем, не пустой ли наш стек, как кошелёк после зарплаты
  }

  size() {
    return this.items.length; // ну и размер стопки, сколько там тарелок накопилось
  }
}

// Пример использования
const stack = new Stack();
stack.push(1);
stack.push(2);
console.log(stack.pop()); // 2 — последним зашёл, первым вышел, вот и вся магия!

Вот и весь сказ, блядь. Главное — не перепутай pop с shift, а то получится очередь, а это уже совсем другая история, про неё потом, если выживешь.