@KononovD

История об одном врестале, или что не так с forEach в js?

kononovD.github.io/studio gift/index.html

Добрый вечер, знатоки.
Если коротко, то я пытаюсь складывать "data-id" кнопок-товаров в объект в js(типо корзина) и потом их удалять, если пользователь удаляет товар из корзины, очевидно.
На этапе "добавлять товар в объект" - все хорошо

А вот когда я начинаю удалять один товар - удаляются все товары с таким же data-id а потом еще и в nan скатывается эта ячейка..

Нагляднее на гитхабе в консоли
kononovD.github.io/studio gift/index.html

console.log стоит после добавления товара в объект и после удаления из него.

И что делать я не знаю. Как быть?

добавление в корзину:5c72f9b35b6db896207038.png
удаление из нее :5c72f9c132d21200992915.png
  • Вопрос задан
  • 170 просмотров
Решения вопроса 1
lamer350
@lamer350
กำลังสูงสุด
Он складывается в NaN потому как вы полностью удаляете значение delete basket[id], а не обнуляете его. И при этом удаляете просто количество, а не заказ полностью из массива.
Более того у вас там еще и множатся обработчики при добавлении в корзину, например если добавить 4 товара одинаковых, то на первый товар в корзине 4 обработчика повиснет и если его удалить - то из массива для этого ID удаляются все количество, а 3 товара должны еще быть...
Ну и само собой попробуйте добавить 4 товара и удалять даже их с конца, увидите что у вас на каждом товара вешается по несколько событий на удаление при клике и удалив второй товар с конца - у вас уже будет -3...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы