A melhor maneira de aprender uma nova linguagem de programação é criando o máximo de projetos possível. Você terá uma experiência mais tranquila como iniciante se criar miniprojetos que se concentrem no que você aprendeu.
O objetivo é evitar o “inferno dos tutoriais” – aquele lugar assustador onde você fica assistindo vários vídeos tutoriais sem ter nenhum projeto concreto para mostrar suas habilidades – e também construir a confiança necessária para enfrentar projetos de maior escala.
Neste artigo, explicarei como você pode criar um sistema de carrinho de compras como iniciante, usando conceitos básicos de Javascript.
Para tentar este projeto, você precisa ter conhecimento profundo de:
O carrinho de compras terá um sistema onde os usuários poderão:
Para começar, precisamos criar alguns arrays que armazenarão os dados de nossos itens. As matrizes necessárias especificamente são:
const itemNames = ["Laptop", "Phone"]; const itemPrices = [1000, 500]; const itemQuantities = [1, 2]; const itemInStock = [true, true];
Vamos criar uma função principal de carrinho de compras que conterá a lógica do carrinho. Usaremos fechamentos para garantir que o carrinho permaneça privado e apenas determinadas funções possam interagir com ele.
const ShoppingCart = () => { const cart = []; // The cart is a private array // Add an item to the cart const addItemToCart = (itemIndex) => { if (itemInStock[itemIndex]) { cart.push(itemIndex); console.log(`${itemNames[itemIndex]} added to the cart`); } else { console.log(`${itemNames[itemIndex]} is out of stock`); } }; // Remove an item from the cart const removeItemFromCart = (itemIndex) => { const index = cart.indexOf(itemIndex); if (index > -1) { cart.splice(index, 1); } }; // Get the names of items in the cart const getCartItems = () => { return cart.map(itemIndex => itemNames[itemIndex]); }; // Calculate the total price of items in the cart const calculateTotal = () => { return cart.reduce((total, itemIndex) => { return total itemPrices[itemIndex] * itemQuantities[itemIndex]; }, 0); }; return { addItemToCart, removeItemFromCart, getCartItems, calculateTotal }; };
Para decompor o código:
Um projeto finalizado deve ser testado para garantir que funciona conforme necessário. Vamos testar para:
adicionando itens
visualizando o carrinho
verificando o preço total
const myCart = ShoppingCart(); // Add a Laptop (item 0) myCart.addItemToCart(0); // Add a Phone (item 1) myCart.addItemToCart(1); // View cart contents console.log(myCart.getCartItems()); // Output: ['Laptop', 'Phone'] // Calculate the total price console.log(myCart.calculateTotal()); // Output: 2000
Para decompor o código:
Um bom sistema de carrinho de compras deve permitir que o usuário remova itens do carrinho. Podemos fazer isso chamando removeItemFromCart().
myCart.removeItemFromCart(1); // Remove the Phone // View the updated cart console.log(myCart.getCartItems()); // Output: ['Laptop'] // Recalculate the total price console.log(myCart.calculateTotal()); // Output: 1000
Os fechamentos ajudam a matriz do carrinho a permanecer privada, acessível apenas por meio das funções retornadas pela função ShoppingCart().
Usando matrizes e funções básicas, você construiu um sistema de carrinho de compras totalmente funcional que pode adicionar, remover e calcular totais de itens. A parte incrível deste projeto é que ele usa fechamentos para encapsular e gerenciar estados sem exigir objetos ou classes complexas.
const itemNames = ["Laptop", "Phone"]; const itemPrices = [1000, 500]; const itemQuantities = [1, 2]; const itemInStock = [true, true]; const ShoppingCart = () => { const cart = []; const addItemToCart = (itemIndex) => { if (itemInStock[itemIndex]) { cart.push(itemIndex); console.log(`${itemNames[itemIndex]} added to the cart`); } else { console.log(`${itemNames[itemIndex]} is out of stock`); } }; const removeItemFromCart = (itemIndex) => { const index = cart.indexOf(itemIndex); if (index > -1) { cart.splice(index, 1); } }; const getCartItems = () => { return cart.map(itemIndex => itemNames[itemIndex]); }; const calculateTotal = () => { return cart.reduce((total, itemIndex) => { return total itemPrices[itemIndex] * itemQuantities[itemIndex]; }, 0); }; return { addItemToCart, removeItemFromCart, getCartItems, calculateTotal }; }; const myCart = ShoppingCart(); myCart.addItemToCart(0); myCart.addItemToCart(1); console.log(myCart.getCartItems()); console.log(myCart.calculateTotal()); myCart.removeItemFromCart(1); console.log(myCart.getCartItems()); console.log(myCart.calculateTotal());
Espero que você tenha gostado de aprender e estou animado para que você construa mais projetos incríveis!
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3