Задача · Итоговый проект · урок 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() возвращает только товары, которые есть на складе, поэтому забранный целиком товар из списка исчезает.
Не добавляйте лишних импортов, если в задаче это прямо не сказано.
Подпишись, чтобы пройти курс
Курс бесплатный. Войди через Telegram и подпишись на канал — откроются все уроки.