Пытаюсь реализовать удаление товара из корзины. Корзина реализована так:
В куки carts помещаются через запятую ID товаров, пример: 36,37,38
На кнопку удалить товар из корзины висит функция, которая считывает строку ищет число и удаляет его в зависимости от того, в начали он, в конце или середине. Если в начале удаляет число вместе с запятой, если в середине аналогично, а если в конце только число.
Код функции:
function deletecart(id) {
var carts = $.cookie("cart");
if(carts.indexOf(id) == carts.length - 1)
carts = carts.replace(id, "");
else
carts = carts.replace(id + ",", "");
if(carts.indexOf(",") == -1) {
carts = null;
}
$.cookie("cart", carts);
getInfoCart();
}
На каждом товаре при указании функции на кнопку удалить посылается ID этого товара.
Все бы ничего, раньше в некоторых проектах с помощью какой-то магии это работало, однако в текущем проекте магия исчезла. В чем может быть проблема?
Возможно, более надёжный способ делать это будет таким:
function deletecart(id) {
var carts = $.cookie("cart");
carts = carts.split(',').filter(num => Number(num) !== id).join(',');
if (carts.length === 0) carts = null;
$.cookie("cart", carts);
getInfoCart();
}
Меня смутил фрагмент:
if(carts.indexOf(",") == -1) {
carts = null;
}
Потому что он почему-то возвращает null
, если в списке осталось только одно число без разделителя (скажем, было 36,37
, удалили 36,
, осталось 37
). Поэтому я изменил этот фрагмент: теперь cart
становится null
, только если в ней вообще не осталось номеров (если строка пустая).
Виртуальный выделенный сервер (VDS) становится отличным выбором
Помогите дописать код Мне нужно проверить что бы поле почты до @ равнялось логинуК примеру логин gt-232425 а почта gt-232425@mail
Можно ли как, допустим, в C++ применить какие-то операции с символом, чтобы он шёл дальше по алфавиту?