当前位置: 首页 > java >正文

JS进阶 Day02

1.深入对象

2.构造函数

3.new 实例化执行过程

4.实例成员和静态成员

5.基本包装类型

6.Object静态方法

7.数组reduce累计方法

reduce如何实现数组累加的

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head><body><script>const arr = [{name: '张三',salary: 10000}, {name: '李四',salary: 10000}, {name: '王五',salary: 20000},]// 涨薪的钱数  10000 * 0.3 // const money = arr.reduce(function (prev, item) {//   return prev + item.salary * 0.3// }, 0)const money = arr.reduce((prev, item) => prev + item.salary * 0.3, 0)console.log(money)</script>
</body></html>

8.数组find、every和转换为真数组

9.字符串常见方法

10.渲染赠品案例

根据上图代码写成一行

11.综合案例-购物车案例渲染数据

12.综合案例-购物车案例合计模块

总代码:

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>* {margin: 0;padding: 0;box-sizing: border-box;}.list {width: 990px;margin: 100px auto 0;}.item {padding: 15px;transition: all .5s;display: flex;border-top: 1px solid #e4e4e4;}.item:nth-child(4n) {margin-left: 0;}.item:hover {cursor: pointer;background-color: #f5f5f5;}.item img {width: 80px;height: 80px;margin-right: 10px;}.item .name {font-size: 18px;margin-right: 10px;color: #333;flex: 2;}.item .name .tag {display: block;padding: 2px;font-size: 12px;color: #999;}.item .price,.item .sub-total {font-size: 18px;color: firebrick;flex: 1;}.item .price::before,.item .sub-total::before,.amount::before {content: "¥";font-size: 12px;}.item .spec {flex: 2;color: #888;font-size: 14px;}.item .count {flex: 1;color: #aaa;}.total {width: 990px;margin: 0 auto;display: flex;justify-content: flex-end;border-top: 1px solid #e4e4e4;padding: 20px;}.total .amount {font-size: 18px;color: firebrick;font-weight: bold;margin-right: 50px;}</style>
</head><body><div class="list"><!-- <div class="item"><img src="https://yanxuan-item.nosdn.127.net/84a59ff9c58a77032564e61f716846d6.jpg" alt=""><p class="name">称心如意手摇咖啡磨豆机咖啡豆研磨机 <span class="tag">【赠品】10优惠券</span></p><p class="spec">白色/10寸</p><p class="price">289.90</p><p class="count">x2</p><p class="sub-total">579.80</p></div> --></div><div class="total"><div>合计:<span class="amount">1000.00</span></div></div><script>const goodsList = [{id: '4001172',name: '称心如意手摇咖啡磨豆机咖啡豆研磨机',price: 289.9,picture: 'https://yanxuan-item.nosdn.127.net/84a59ff9c58a77032564e61f716846d6.jpg',count: 2,spec: { color: '白色' }},{id: '4001009',name: '竹制干泡茶盘正方形沥水茶台品茶盘',price: 109.8,picture: 'https://yanxuan-item.nosdn.127.net/2d942d6bc94f1e230763e1a5a3b379e1.png',count: 3,spec: { size: '40cm*40cm', color: '黑色' }},{id: '4001874',name: '古法温酒汝瓷酒具套装白酒杯莲花温酒器',price: 488,picture: 'https://yanxuan-item.nosdn.127.net/44e51622800e4fceb6bee8e616da85fd.png',count: 1,spec: { color: '青色', sum: '一大四小' }},{id: '4001649',name: '大师监制龙泉青瓷茶叶罐',price: 139,picture: 'https://yanxuan-item.nosdn.127.net/4356c9fc150753775fe56b465314f1eb.png',count: 1,spec: { size: '小号', color: '紫色' },gift: '50g茶叶,清洗球,宝马, 奔驰'}]// 1. 根据数据渲染页面document.querySelector('.list').innerHTML = goodsList.map(item => {// console.log(item)  // 每一条对象// 对象解构  item.price item.countconst { picture, name, count, price, spec, gift } = item// 规格文字模块处理const text = Object.values(spec).join('/')// 计算小计模块 单价 * 数量  保留两位小数 // 注意精度问题,因为保留两位小数,所以乘以 100  最后除以100const subTotal = ((price * 100 * count) / 100).toFixed(2)// 处理赠品模块 '50g茶叶,清洗球'const str = gift ? gift.split(',').map(item => `<span class="tag">【赠品】${item}</span> `).join('') : ''return `<div class="item"><img src=${picture} alt=""><p class="name">${name} ${str} </p><p class="spec">${text} </p><p class="price">${price.toFixed(2)}</p><p class="count">x${count}</p><p class="sub-total">${subTotal}</p></div>`}).join('')// 3. 合计模块const total = goodsList.reduce((prev, item) => prev + (item.price * 100 * item.count) / 100, 0)// console.log(total)document.querySelector('.amount').innerHTML = total.toFixed(2)</script>
</body></html>

http://www.xdnf.cn/news/14194.html

相关文章:

  • 在tensorrt engine中提高推理性能小记
  • 互联网大厂Java求职面试:云原生架构与微服务设计中的复杂挑战
  • Flask文件上传与异常处理完全指南
  • create_react_agent + MCP tools
  • TDengine 如何从 2.x 迁移到 3.0
  • Java并发编程实战 Day 22:高性能无锁编程技术
  • JAVA关键字-final
  • Semaphore入门案例
  • Java线程池ThreadPoolExecutor的状态
  • ERROR 1396 (HY000): Operation ALTER USER failed for ‘root‘@‘%‘
  • 基于 C 语言的图书管理系统开发详解​
  • 基于YOLOv11+PP-OCRv5深度学习的智能车牌检测与识别系统python源码+pytorch模型+评估指标曲线+精美GUI界面
  • 【SpringMVC 入门介绍】
  • 零基础RT-thread第二节:按键控制
  • Redux 原理深度剖析
  • 备忘录模式:文本编辑器撤销功能实现
  • 2025年渗透测试面试题总结-字节跳动[实习]安全研究员(题目+回答)
  • 浏览器 报502 网关错误,解决方法2
  • 论文精读Lami-Detr:Open-Vocabulary Detection with Language Model Instruction
  • 芯片的起点——从硅到晶圆制造
  • 用Python写一个可视化大屏
  • 简说ping、telnet、netcat
  • 论文阅读-单目视觉惯性系统时间标定
  • MySQL 锁学习笔记
  • 计算机网络-自顶向下—第二章应用层-重点复习笔记
  • 在C++中的封装(Encapsulation)
  • Linux学习笔记:PCIe内核篇(1):初始化与枚举流程
  • 第1章 C# 和 .NET 框架 笔记
  • MCP简介和应用
  • 第十七章 Linux之大数据定制篇——Shell编程