> Как реализовать добавление рандомного товара в корзину и удаление его из ассортимента по клику? (JavaScript)
Уровень: senior · Роль: frontend · Категория: Технические вопросы
Компании: РСХБ
Стек: JavaScript
> Пример ответа
Для реализации добавления случайного товара в корзину и его удаления из ассортимента по клику можно использовать следующий подход на чистом JavaScript:
JAVASCRIPT// Исходный массив товаровconst products = [{ id: 1, name: 'Ноутбук', price: 50000 },{ id: 2, name: 'Мышь', price: 1500 },{ id: 3, name: 'Клавиатура', price: 3000 }];let cart = [];// Функция для получения случайного товараfunction getRandomProduct() {if (products.length === 0) return null;const randomIndex = Math.floor(Math.random() * products.length);return products[randomIndex];}// Функция добавления случайного товара в корзину и удаления из ассортиментаfunction addRandomToCart() {const product = getRandomProduct();if (!product) {console.log('Товары закончились');return;}// Добавляем в корзинуcart.push(product);// Удаляем из ассортиментаconst productIndex = products.findIndex(p => p.id === product.id);products.splice(productIndex, 1);console.log(`Добавлен: ${product.name}`);renderUI();}// Пример привязки к клику (например, на кнопке)document.getElementById('addButton').addEventListener('click', addRandomToCart);// Функция для обновления интерфейса (опционально)function renderUI() {console.log('Ассортимент:', products);console.log('Корзина:', cart);}
Ключевые моменты:
- Используется
Math.random()для выбора случайного индекса - Товар сначала добавляется в корзину, затем удаляется из ассортимента через
splice() - Проверка на пустой массив предотвращает ошибки
- Функция
renderUI()обновляет отображение после каждого действия
Для реального проекта стоит добавить обработку состояния (например, через React или Vue) и визуальное обновление DOM вместо консольного вывода.
> Похожие задачи по frontend
Можно ли отлавливать события на фазе погружения (capture phase) в JavaScript и как это сделать
Какие способы выполнения HTTP-запросов в браузере на JavaScript?
Что делает метод hasOwnProperty в JavaScript
Что возвращает typeof для массива в JavaScript
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью