Для реализации логики повторных элементов в корзине с использованием Node.js, необходимо создать структуру данных, которая будет хранить информацию о товарах в корзине, и реализовать соответствующие методы для добавления, удаления и обновления товаров.
Одна из основных структур данных, которая может быть использована для хранения элементов в корзине, - это массив. Каждый элемент массива будет представлять собой товар с информацией о его наименовании, количестве, цене и других дополнительных характеристиках.
Рассмотрим пример реализации функционала корзины с повторными элементами:
class CartItem { constructor(name, quantity, price) { this.name = name; this.quantity = quantity; this.price = price; } } class Cart { constructor() { this.items = []; } addItem(item) { // Проверяем, есть ли уже такой товар в корзине const existingItemIndex = this.items.findIndex(i => i.name === item.name); if (existingItemIndex !== -1) { // Если товар уже есть в корзине, обновляем его количество this.items[existingItemIndex].quantity += item.quantity; } else { // Иначе добавляем новый товар в корзину this.items.push(item); } } removeItem(itemName) { // Удаляем товар из корзины по его наименованию this.items = this.items.filter(item => item.name !== itemName); } updateQuantity(itemName, newQuantity) { // Обновляем количество товара в корзине const item = this.items.find(item => item.name === itemName); if (item) { item.quantity = newQuantity; } } getTotalPrice() { // Рассчитываем общую стоимость товаров в корзине const totalPrice = this.items.reduce((acc, item) => acc + (item.quantity * item.price), 0); return totalPrice; } getItems() { return this.items; } } // Пример использования const cart = new Cart(); // Добавляем товары в корзину cart.addItem(new CartItem("Товар 1", 2, 100)); cart.addItem(new CartItem("Товар 2", 1, 200)); cart.addItem(new CartItem("Товар 1", 3, 100)); // Добавляем повторный товар // Обновляем количество товара cart.updateQuantity("Товар 1", 5); // Удаляем товар из корзины cart.removeItem("Товар 2"); // Получаем список товаров в корзине const items = cart.getItems(); console.log(items); // Получаем общую стоимость товаров в корзине const totalPrice = cart.getTotalPrice(); console.log(totalPrice);
В данном примере мы создали два класса: CartItem
для представления отдельных товаров и Cart
для представления корзины с методами для работы с товарами.
Метод addItem
добавляет товар в корзину. Если товар с таким же именем уже есть в корзине, то метод обновляет его количество. Метод removeItem
удаляет товар из корзины по его наименованию. Метод updateQuantity
обновляет количество товара в корзине. Метод getTotalPrice
рассчитывает общую стоимость товаров в корзине. Метод getItems
возвращает список товаров в корзине.
Таким образом, с использованием данной реализации вы сможете добавлять, удалять, обновлять товары в корзине, а также получать их список и общую стоимость.