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

【javascript实操记录】

功能描述:

1. 利用split()方法对测试数据进行解析:学科,日期

2. 将测试数据封装成对象数组的格式

3. 使用数组的sort()方法和Date对象,将测试数据按照日期从早到晚进行排序

4. 表格数据的静态填充

5. 距离最近考试的倒计时天数的提醒

代码如下:(这里引入了jquery.js)

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>js小练习</title>
</head>
<body><table><thead><tr><th>ID</th><th>考试科目</th><th>开考日期</th></tr></thead><tbody id="myBody"><!-- 具体数据 --></tbody></table><!-- 最近日期的倒计时 --><div style="margin-top: 10px;"><h3 id="countdown"></h3></div><!-- 引入jquery.js --><script src="../js/jquery.min.js"></script><script>var testData = '数学, 2023-12-23\n英语,2023-11-11\n语文,2023-10-29\n物理,2023-12-27\n化学,2023-09-30\n';//1. 将testData数据通过split()进行分割: 学科,日期 ---为一组var subject_date = testData.split('\n');//2. 注意实际的subject_date最后存放为空,因为末尾的\nvar length = subject_date.length-1;console.log('subject_date中实际的数据数目为:' + length);//3. 将subject_date中的每一项数据,以对象数组的形式进行存放var objArr = [];for(var i=0; i<length; i++){  //此时subject_date每一个数的格式:subject,datevar subject = subject_date[i].split(',')[0];   //分割, 取前面的学科var date = subject_date[i].split(',')[1];      //分割,取后面的日期objArr.push({subject:`${subject}`,date:`${date}`});//打印出来objArr数组中存放的每一项console.log(`-------------objArr[${i}].subject=${objArr[i].subject}`);console.log(`-------------objArr[${i}].date=${objArr[i].date}`);}//4. 比较date,调用数组的sort()方法,按照日期的大小排序var sorted = objArr.sort((a, b) => {//Date对象存储的是从1970年1月1日午夜(UTC)开始计算的毫秒数var dateA = new Date(a.date);  var dateB = new Date(b.date);//dateA-dateB为正,说明b比a小,交换a,b;dateA-dateB为负数或0,不交换return dateA - dateB;  });//5. 表格数据填充for(var i=0; i<sorted.length; i++){$('#myBody').append(`<tr><td>${i+1}</td><td>${sorted[i].subject}</td><td>${sorted[i].date}</td></tr>`);}//6. 获取最近的日期,并转为毫秒数的形式var earlist = new Date(objArr[0].date);//7. 获取当前的日期(毫秒数)var current = new Date();//8. 计算日期差异(以毫秒为单位)var dateDiff = earlist - current;//9. 毫秒数转为天数var dayDiff = Math.floor(dateDiff/(1000 * 60 * 60 * 24));//10. 输出到页面document.getElementById('countdown').innerHTML = `当前最近的考试是${objArr[0].subject}, 还剩${dayDiff}天`;</script>
</body>
</html>

运行结果:

http://www.lryc.cn/news/147973.html

相关文章:

  • Mysql--技术文档--悲观锁、乐观锁-《控制并发机制简单认知、深度理解》
  • 【GO】LGTM_Grafana_Tempo(2)_官方用例改后实操
  • git 口令
  • 【回眸】剑指offer(二)解题思路
  • Python 基本文件操作及os库
  • YOLOv5算法改进(9)— 替换主干网络之ShuffleNetV2
  • 三、mycat分库分表
  • gitlab提交项目Log in with Access Token错误
  • openGauss学习笔记-56 openGauss 高级特性-DCF
  • Xcode 14 pod init报错
  • 飞腾PSPA可信启动--2 数字签名证书
  • 微前端:重塑大型项目的前沿技术
  • 官方推荐使用的OkHttp4网络请求库全面解析(Android篇)
  • Spooling的原理
  • Homebrew 无法安装过时的PHP版本
  • python爬取bilibili,下载视频
  • java八股文面试[多线程]——进程与线程的区别
  • SpringBootWeb 登录认证[Cookie + Session + Token + Filter + Interceptor]
  • d3dcompiler_43.dll丢失怎么修复,分享几种修复d3dcompiler_43.dll的方法
  • mqtt集群搭建并使用nginx做负载均衡_亲测得结论
  • JavaScript—DOM(文档对象模型)
  • mysql Index
  • ​八路参考文献:[八一新书]许少辉.乡村振兴战略下传统村落文化旅游设计[M]北京:中国建筑出版传媒,2022.
  • Leetcode Top 100 Liked Questions(序号75~104)
  • Shell编程之流程控制
  • 什么是Python爬虫分布式架构,可能遇到哪些问题,如何解决
  • QT下使用ffmpeg+SDL实现音视频播放器,支持录像截图功能,提供源码分享与下载
  • Microsoft Excel整合Python:数据分析的新纪元
  • 【前端代码规范】
  • postgresql-日期函数