La mejor manera de aprender un nuevo lenguaje de programación es creando tantos proyectos como sea posible. Tendrás una experiencia más fluida como principiante si creas miniproyectos que se centren en lo que has aprendido.
El objetivo es evitar el "infierno de los tutoriales", ese lugar aterrador en el que sigues viendo varios vídeos tutoriales sin tener ningún proyecto concreto para demostrar tus habilidades, y también generar la confianza necesaria para abordar proyectos de mayor escala.
En este artículo, explicaré cómo puedes crear un sistema de carrito de compras como principiante, utilizando conceptos básicos de Javascript.
Para intentar este proyecto, necesitarás tener un conocimiento profundo de:
El carrito de compras tendrá un sistema donde los usuarios podrán:
Para comenzar, necesitamos crear algunas matrices que contendrán los datos de nuestros elementos. Las matrices necesarias específicamente son:
const itemNames = ["Laptop", "Phone"]; const itemPrices = [1000, 500]; const itemQuantities = [1, 2]; const itemInStock = [true, true];
Vamos a crear una función de carrito de compras principal que contendrá la lógica del carrito. Usaremos cierres para garantizar que el carrito permanezca privado y que solo ciertas funciones puedan interactuar con él.
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 desglosar el código:
Se debe probar un proyecto terminado para garantizar que funcione según sea necesario. Vamos a probar:
agregando elementos
viendo el carrito
comprobando precio 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 desglosar el código:
Un buen sistema de carrito de compras debe permitir al usuario eliminar artículos del carrito. Podemos hacer esto llamando a 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
Los cierres ayudan a que la matriz del carrito permanezca privada y solo sea accesible a través de las funciones devueltas por la función ShoppingCart().
Al utilizar matrices y funciones básicas, ha creado un sistema de carrito de compras completamente funcional que puede agregar, eliminar y calcular totales de artículos. Lo asombroso de este proyecto es que utiliza cierres para encapsular y administrar el estado sin requerir objetos o clases complejos.
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 hayas disfrutado aprendiendo y estoy emocionado de que puedas crear más proyectos increíbles!
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3