Перейти к содержимому
Задача · Итоговый проект · урок 7 из 7

Задача: склад

Допишите класс Inventory — склад, который считает единицы каждого товара. Поле или constructor для хранения количеств добавьте сами. Функция function createInventory() в заготовке уже готова и должна остаться: тесты создают склад только через неё. Методы такие:

  • add(name, qty) кладёт на склад qty единиц товара name;
  • take(name, qty) забирает со склада qty единиц товара name, а если их меньше, бросает RangeError и количество не меняет;
  • count(name) возвращает, сколько единиц товара лежит на складе;
  • names() возвращает массив названий товаров по алфавиту.

Примеры:

  • после add("apple", 5) и add("apple", 3): count("apple") → 8
  • после add("pear", 2): take("pear", 3) → бросает RangeError, а count("pear") остаётся 2
  • после add("pear", 2) и add("apple", 5): names() → ["apple", "pear"]

Ограничения: названия — непустые строки из строчных латинских букв, а qty — целое число больше 0; для неизвестного товара count возвращает 0, а take бросает RangeError; names() возвращает только товары, которые есть на складе, поэтому забранный целиком товар из списка исчезает.

Не добавляйте лишних импортов, если в задаче это прямо не сказано.

inventory.js — javascript
javascript · строк: 20
Ctrl+Enter запуск · Esc выйти из редактора

Подпишись, чтобы пройти курс

Курс бесплатный. Войди через Telegram и подпишись на канал — откроются все уроки.

Войти другим способом