Условие
У киоска PierBooth в
script.js
уже лежат объект
boothData
и три функции. Программа должна собрать отчёт в
#out
(четыре строки - см. вкладку
«Результат»),
но сейчас результат неверный или код падает с ошибкой.
Писать всё заново не нужно: прочитайте функции и вызовы внизу файла,
найдите, где логика или данные «ломаются», и исправьте только ошибки.
HTML и CSS не трогайте.
Что нужно сделать
-
Разберите
readBoothStatus: при открытом киоске (true) должна возвращаться строка «Открыто». Проверьте ветки условия, имя вreturn(опечаткаnotee) и вызов внизу файла: флаг нужно брать изboothData.isOpenNow. -
В
checkPairSumцены и средний чек приходят как текст с символом €. Сложение двух чисел и «склеивание» строк дают разный результат - обе цены иaverageнужно привести к числу (например+….slice(0, -1)). Для Harbor Salad + Dock Bun (14 + 9) относительно среднего 20€ должна получиться строка «Цена выше средней». -
В
handoffCrewObject.assignкопирует объект поверхностно: массивcrewобщий у копии и оригинала. Не меняйтеcopy.crew[0]- замените весь массив:copy.crew = [{ name: "Nora", age: 32 }]. Тогда в отчёте «копия: Nora», а «база: Lena · Sam» останется прежней. После этого допишите вывод четырёх строк в#out(см. вкладку «Результат»).
Подсказка для новичка
Не копируйте готовый отчёт из описания - правите функции и вывод в
script.js.
Если после правки одной функции другая строка отчёта всё ещё неверная -
переходите к следующей функции.
Про копии объектов и строки с ценами - в «Дополнительной информации».
Стартовый код
Код с ошибками уже в редакторе. Исправьте функции, сверьте с вкладкой «Результат» и нажмите Проверить. «Помощник» правит только ошибочные места и дописывает недостающий вывод - файл целиком не переписывает.
Вот так должно получиться
В блоке #out четыре строки отчёта PierBooth:
Как пользоваться IDE
- Предпросмотр — как выглядит ваша страница.
- Результат — какой итог должен получиться.
- Описание задачи — полное условие и справка.
- Задание — краткие шаги 1–2–3 снизу.
- Помощник — по шагам правит ошибки и дописывает отчёт, не затирая весь код.
- Черновик — ссылка на ваш код.
- Сброс кода — стартовый шаблон.
Статус киоска
Функция получает логический флаг «открыт сейчас».
Спросите себя: при
true
какая подпись должна вернуться - «Открыто» или «Закрыто»?
Сравните то, что записывается в переменную, с тем, что стоит в
return
(имя должно совпадать буква в букву).
Посмотрите вызов внизу файла: откуда реально берётся флаг открытия?
Сумма цен
Цены в данных выглядят как текст с символом €.
В JavaScript
+
между строкой и числом часто склеивает текст, а не складывает суммы.
Для сравнения «выше среднего» нужны числа.
Как в вашем коде получить из такой строки числовое значение без символа валюты?
Копия и оригинал
Object.assign({}, data)
копирует только «верхний» уровень: вложенный массив
crew
остаётся одной и той же ссылкой. Поэтому
copy.crew[0] = …
портит и
boothData.crew.
Замените массив целиком новым:
copy.crew = [{ name: "Nora", age: 32 }]
- у копии будет только Nora, у базы по-прежнему Lena и Sam.
Формат вывода
В
#out
ровно четыре строки:
статус: Открыто,
чек: Цена выше средней,
копия: Nora,
база: Lena · Sam
(имена через « · »). Соберите их из
statusText,
sumText,
handed.crew
и
boothData.crew.