使用数组和函数在 JavaScript 中构建初学者友好的购物车的分步指南

使用数组和函数在 javascript 中构建初学者友好的购物车的分步指南

学习新编程语言的最佳方法是创建尽可能多的项目。如果您构建专注于您所学知识的迷你项目,您将获得更顺畅的初学者体验。
我们的目标是避免“教程地狱”(即您不断观看多个教程视频而没有任何具体项目来展示您的技能的可怕地方),并建立处理大型项目所需的信心。
在本文中,我将向初学者解释如何使用基本的 javascript 概念创建购物车系统。

先决条件

要尝试这个项目,您需要深入了解:

功能方法数组

构建什么?

购物车将有一个系统,用户可以:

将商品添加到购物车从购物车中删除商品查看购物车内容计算购物车中商品的总价

第 1 步:设置数据

首先,我们需要创建一些数组来保存项目的数据。具体需要的数组是:

itemnames:指定每个项目的名称。itemprices:包含每件商品的价格。itemquantities:告诉特定商品有多少可用。iteminstock:通过使用 true 或 false 确定商品是否有库存。

const itemnames = ["laptop", "phone"];const itemprices = [1000, 500];const itemquantities = [1, 2];const iteminstock = [true, true];

第 2 步:使用功能构建购物车

我们将创建一个主要的购物车功能,其中包含购物车的逻辑。我们将使用闭包来确保购物车保持私密性,并且只有某些功能可以与其交互。

立即学习“Java免费学习笔记(深入)”;

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  };};

分解代码:

additemtocart(itemindex):根据商品索引将商品添加到购物车(仅当有库存时)。removeitemfromcart(itemindex):使用索引从购物车中删除项目。getcartitems():使用 map() 将索引转换为名称,返回购物车中商品的名称。calculatetotal():通过使用reduce()方法将购物车中商品的价格和数量相乘来计算总价。

第 3 步:测试购物车

完成的项目应该进行测试以确保其按需要工作。我们将测试:

添加项目

查看购物车

查看总价

const mycart = shoppingcart();// add a laptop (item 0)mycart.additemtocart(0);// add a phone (item 1)mycart.additemtocart(1);// view cart contentsconsole.log(mycart.getcartitems()); // output: ['laptop', 'phone']// calculate the total priceconsole.log(mycart.calculatetotal()); // output: 2000

分解代码:

我们通过调用它来创建购物车的实例:const mycart = shoppingcart();.我们使用 itemnames 数组中的索引将商品添加到购物车:mycart.additemtocart(0);对于笔记本电脑和 mycart.additemtocart(1);对于电话。我们使用 getcartitems() 打印购物车中商品的名称最后,我们使用calculatetotal()计算总价。

第 4 步:从购物车中删除商品

一个好的购物车系统必须允许用户从购物车中删除商品。我们可以通过调用removeitemfromcart()来做到这一点。

mycart.removeitemfromcart(1); // remove the phone// view the updated cartconsole.log(mycart.getcartitems()); // output: ['laptop']// recalculate the total priceconsole.log(mycart.calculatetotal()); // output: 1000

奖励:了解购物车系统中的闭包

闭包帮助购物车数组保持私有,只能通过 shoppingcart() 函数返回的函数访问。

购物车数组是在shopping cart()内部定义的,不能从外部直接访问。但是,由于 additemtocart()、removeitemfromcart()、getcartitems() 和calculatetotal() 函数定义在同一范围内,因此它们可以与 cart 交互。闭包是 javascript 的一项强大功能,有助于维护代码中的数据隐私和结构。

结论

通过使用基本数组和函数,您已经构建了一个功能齐全的购物车系统,可以添加、删除和计算商品总数。这个项目最棒的部分是它使用闭包来封装和管理状态,而不需要复杂的对象或类。

最终代码

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());

我希望您喜欢学习,我很高兴您能够构建更多精彩的项目!

以上就是使用数组和函数在 JavaScript 中构建初学者友好的购物车的分步指南的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1493054.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月19日 15:21:50
下一篇 2025年12月19日 15:22:05

相关推荐

  • js该如何自学

    自学 JavaScript 需要以下 10 个步骤:设定目标选择资源开始编码学习理论知识构建项目加入社区不断练习调试和解决问题深入学习保持最新 JavaScript 自学指南 如何自学 JavaScript? 自学 JavaScript 需要以下步骤: 1. 设定目标明确学习 JavaScript …

    好文分享 2025年12月19日
    000
  • java js中如何引入js

    要将 JS 文件引入 Java 和 JS 应用程序,有以下方法:Java:在 JSP/Servlet 中使用 标签在 JavaFX 中使用 ScriptEngine在 Android 中使用 WebViewJS:使用 标签使用 import 关键字(ES6)使用 require() 函数(Node.…

    2025年12月19日
    000
  • js里面如何引用js

    要引用 JavaScript,有以下方法:使用 标签,指定 src 属性指向 JS 文件路径。使用内联脚本,直接写入网页文档,但这种方法不建议使用。通过包管理系统(如 CDNJS)安装和引用库。使用 ES6 模块语法,导入外部文件中的函数或对象。 如何引用 JavaScript JavaScript…

    好文分享 2025年12月19日
    000
  • js如何如何使用数组

    在 JavaScript 中,数组用于存储一系列按索引排序的值。要使用数组:声明和初始化数组。使用索引值访问元素。使用 push() 方法添加元素。使用 pop() 方法删除元素。使用 forEach()、map() 或 filter() 方法遍历元素。使用 sort() 方法排序元素。使用 con…

    2025年12月19日
    000
  • 解锁 JavaScript 中的复杂结构:前端开发人员指南

    作为前端开发人员,我们经常会遇到数组和对象形式的复杂数据结构。了解如何导航这些结构对于高效编码和数据操作至关重要。在本文中,我将引导您完成一些在 JavaScript 中处理复杂数组和对象的简单和更高级的示例。 简单的例子 数组 数组是存储在单个变量中的项目的集合。这是一个简单的例子: javasc…

    2025年12月19日
    000
  • js如何如何获取li

    获取 li 元素有以下方法:使用 getElementById 获取具有唯一 id 的 li 元素。使用 getElementsByClassName 获取具有指定类名的 li 元素。使用 querySelector 根据 CSS 选择器获取 li 元素。使用 querySelectorAll 获取…

    2025年12月19日
    000
  • js如何打印变量

    在 JavaScript 中打印变量的常见方法有:console.log():用于在控制台中打印信息,不会输出到页面上。document.write():将数据写入 HTML 文档,在浏览器中输出到页面上。alert():显示一个警报窗口,显示传递的消息。 如何使用 JavaScript 打印变量 …

    2025年12月19日
    000
  • 如何编辑js脚本

    答案:编辑 JS 脚本使用文本编辑器或 IDE(集成开发环境),例如 Sublime Text、Visual Studio Code、WebStorm。展开:文本编辑器:Windows:记事本Mac:文本编辑Sublime TextVisual Studio CodeIDE:WebStorm(Jav…

    2025年12月19日
    000
  • js如何发表情

    在 JavaScript 中发表情的方法有多种:使用内置的 emoji 包;使用第三方库(如 emojis-list);使用 HTML 实体;使用 CSS 图像属性。 如何在 JavaScript 中发表情 发表情是通过图像或符号来表达情绪的方式,广泛应用于网络聊天和社交媒体。JavaScript …

    2025年12月19日
    000
  • 如何讲解js项目

    讲解 JS 项目时,应遵循以下步骤:定义项目目标,为讲解提供框架。展示使用的技术栈,包括框架、库和工具。概述项目架构,描述文件夹结构和模块化。演示关键特性,通过实际演示或代码片段展示其功能。解释数据流,跟踪数据在项目中的流动。讨论遇到的挑战及解决方法,展示解决问题的能力。展示测试策略,说明测试方法和…

    2025年12月19日
    000
  • js如何拼接字段

    JavaScript 拼接字段有两种主要方法:字符串连接符(+),它简单直接但可能出现类型转换问题;以及 concat() 方法,它更安全但语法稍显冗长。选择哪种方法取决于具体情况的需要。 如何使用 JavaScript 拼接字段 JavaScript 提供了多种方法来拼接字段,本文将介绍最常用的两…

    2025年12月19日
    000
  • js中如何showhide

    在 JavaScript 中,可以通过控制 CSS 属性来显示或隐藏元素:显示元素:使用 document.getElementById(“elementId”).style.display = “block”;隐藏元素:使用 document.get…

    2025年12月19日
    000
  • js文件如何获取

    JavaScript 文件可通过两种方式获取文件:使用XMLHttpRequest (XHR) 对象:创建XHR对象设置URL和HTTP方法设置响应类型为arraybuffer发送请求通过onload事件侦听器处理响应使用Fetch API:使用fetch()发送请求设置URL和HTTP方法通过th…

    2025年12月19日
    000
  • js如何禁用enter

    在 JavaScript 中禁用 Enter 键有五种方法:event.preventDefault() 预防表单提交或按钮单击。event.stopPropagation() 阻止事件传递到父元素。keyCode 检查按下的键码。setAttribute(‘disabled&#8217…

    2025年12月19日
    000
  • js如何存sessionid

    在 JavaScript 中存储 sessionID 有两种方法:使用 localStorage,数据持久保存,即使浏览器关闭后也不会丢失;使用 sessionStorage,数据仅在当前会话中有效,浏览器关闭后删除。 如何在 JavaScript 中存储 sessionID sessionID 是…

    2025年12月19日
    000
  • 如何整理js格式

    答案:使用代码格式化工具,例如 Prettier 或 ESLint,可以整理 JS 格式。详细步骤:选择一个代码格式化工具。安装代码格式化工具。配置代码格式化工具。运行代码格式化工具。优点:确保代码遵循一致的样式。节省手动格式化代码所需的时间。促进团队协作和代码审查。 整理 JS 格式 如何整理 J…

    2025年12月19日
    000
  • js 如何更改别的js变量

    如何更改 JavaScript 变量?更改全局变量:使用 window 对象或直接赋值。更改局部变量:在函数内使用参数或闭包。 如何在 JavaScript 中更改其他 JavaScript 变量 JavaScript 变量的作用域是局部或全局的。局部变量在函数或块内声明,而全局变量在脚本的任何位置…

    2025年12月19日
    000
  • node.js 如何循环js

    循环 JavaScript 对象:可使用 for…in、Object.keys() + forEach() 或 Object.entries() + forEach();循环数组:可使用 for 循环、forEach()、map()、filter()、reduce()。 如何使用 Nod…

    2025年12月19日
    000
  • js如何引用js方法吗

    JavaScript 方法通过对象或类定义,可通过两种方法引用:1. 调用对象方法:使用点运算符 (.) 调用定义在对象中的方法。2. 调用类方法:使用类名后跟点运算符 (.) 调用定义在类中的方法。 如何引用 JavaScript 方法 JavaScript 方法是定义在对象或类中的可重用的代码块…

    2025年12月19日
    000
  • d3.js 如何js

    D3.js 是一个 JavaScript 库,用于创建交互式的基于数据的可视化。它通过以下步骤使用:加载 D3.js 库选择 DOM 元素导入数据绑定数据以创建数据驱动的可视化使用 D3.js API 创建可视化处理交互 D3.js 简介与使用方法 D3.js(Data-Driven Documen…

    2025年12月19日
    000

发表回复

登录后才能评论
关注微信