Условие
На складе BayScale нужны фабрики с замыканиями. createBayScale(factor) возвращает функцию, которая умножает число на factor. Сделайте scaleX2 и scaleX3, примените к loads = [2, 4, 6]. createBayMeter(10, 2) - метр с шагом (три вызова). createBayMeters([4, 8, 12]) - три независимых счётчика (+1), у каждого по два вызова. Соберите отчёт в #out. HTML и CSS не трогайте. Сверьте с вкладкой «Результат».
Что нужно сделать
- Сделайте
createBayScale(factor)и примените ×2 / ×3 кloads. - Сделайте
createBayMeter(start, step)и вызовите метр три раза. - Сделайте
createBayMeters(starts)- независимые счётчики - и выведите четыре строки в#out.
Подсказка для новичка
Внутри map / forEach создавайте новый let value на каждую итерацию - иначе все счётчики разделят одну переменную. Подробнее - в «Дополнительной информации».
Стартовый код
Допишите решение в редакторе слева, сверьте с вкладкой «Результат» и нажмите Проверить. Кнопка «Помощник» подставит решение по шагам.
Вот так должно получиться
В блоке #out четыре строки отчёта BayScale:
Как пользоваться IDE
- Предпросмотр — как выглядит ваша страница.
- Результат — какой итог должен получиться.
- Описание задачи — полное условие и справка.
- Задание — краткие шаги 1–2–3 снизу.
- Помощник — подсказки по шагам.
- Черновик — ссылка на ваш код.
- Сброс кода — стартовый шаблон.
Фабрика коэффициентов
createBayScale(2) возвращает функцию, которая «помнит» factor из внешнего лексического окружения. Поэтому loads.map(scaleX2) даёт 4 · 8 · 12.
Метр с шагом
createBayMeter(10, 2) хранит локальный value. Каждый вызов делает value += step и возвращает новое значение: 12, 14, 16.
Почему панель независима
Каждый элемент createBayMeters получает свой let value. Если бы все ссылались на одну переменную, после двух вызовов у всех были бы одинаковые числа.
Формат вывода
×2: 4 · 8 · 12-loads.map(scaleX2).×3: 6 · 12 · 18-loads.map(scaleX3).метр: 12 · 14 · 16- три вызоваcreateBayMeter(10, 2).панель: 5·6 | 9·10 | 13·14- у каждого счётчика два вызова.
Коротко: factor в замыкании · метр с шагом · свой value на каждый счётчик панели · четыре строки в #out.