Удаление купленного
Теперь список запоминает всё, в том числе то, что вы купили на прошлой неделе. После похода в магазин захочется убрать вычеркнутое, поэтому в приложении появится для этого кнопка: Убрать купленное.
Кнопке место на странице, поэтому на этот раз вы измените и index.html — одной строкой. Скрипт затем находит кнопку через document.querySelector(), как и остальные элементы.
Как избавиться от купленных товаров? С помощью filter() из урока «Методы массивов». Он проходит по массиву и создаёт новый — только из тех элементов, для которых его функция возвращает true. Здесь нужно оставить товары, которые не куплены:
items = items.filter((item) => !item.bought);filter() не меняет старый массив. Он возвращает новый, и код кладёт его в items, поэтому хорошо, что items объявлен через let. Список изменился, поэтому обработчик затем делает то же, что и остальные обработчики после изменения: сохраняет список и показывает его.
Типичная ошибка — написать items.filter(...) отдельной строкой, без items =. Новый массив создаётся и тут же забывается, а список остаётся прежним.
Задание
- 1
В
index.htmlдобавьте кнопку под абзацем с суммой к оплате:<button id="remove">Убрать купленное</button>. Вscript.jsнайдите её среди остальных элементов:const removeButton = document.querySelector("#remove");. - 2
Когда нажимают
removeButton, оставьте вitemsтолько не купленные товары, затем сохраните список черезsaveItems()и покажите его черезshowItems(). Попробуйте: хлеб исчезнет и при повторном запуске кода не вернётся.