b站黑马JavaScript的Node.js案例代码——考试成绩整理案例

news2025/1/11 17:42:12

目录

目标效果:

重点原理:

1.js中split方法——转换字符串为数组

2.js中forEach方法——遍历数组中每个对象

3.js数组操作中push方法——添加1/多个元素去数组的末尾

4.js数组操作中replace方法——在字符串中用一些字符替换另一些字符

5.js数组操作中join方法

6.js中/windows中——\r和\n

cmd终端中:

1.打印arrOld时/arrOld中:

2.打印arrNew时/arrNew中:

3.打印newStr时/newStr中:

代码部分:

整理成绩.js中(全是重点)


目标效果:

1.已有一个成绩.txt文件,里面的内容:

小红=99 小白=100 小黄=70 小黑=66 小绿=88

2.需要用Node.js中的fs.readFile()来获取成绩.txt文件里面的内容,然后经过处理,将处理过后的内容用Node.js中的fs.writeFile()写入到新的txt文件 成绩-ok.txt中

成绩-ok.txt中的内容:

小红:99
小白:100
小黄:70
小黑:66
小绿:88

重点原理:

1.js中split方法——转换字符串为数组

2.js中forEach方法——遍历数组中每个对象

3.js数组操作中push方法——添加1/多个元素去数组的末尾

4.js数组操作中replace方法——在字符串中用一些字符替换另一些字符

 

5.js数组操作中join方法

6.js中/windows中——\r和\n

\r 表示  回车

\n 表示  换行

cmd终端中:

1.打印arrOld时/arrOld中:

2.打印arrNew时/arrNew中:

3.打印newStr时/newStr中:

代码部分:

整理成绩.js中(全是重点)

// 1. 导入 fs 模块
const fs = require('fs');

// 2. 调用 fs.readFile() 读取文件的内容
//    参数1:读取文件的存放路径
//    参数2:(可选)读取文件时候采用的编码格式,一般默认指定 utf8
//    参数3:回调函数,拿到读取失败的结果err 和 成功的结果dataStr
fs.readFile('./成绩.txt', 'utf8', function (err, dataStr) {
  // 3. 判断是否读取成功
  if (err) {
    // 3.1 打印失败的结果err
    // 如果读取成功,则 err 的值为 null
    // 如果读取失败,则 err 的值为 错误对象,dataStr 的值为 undefined
    return console.log('读取文件失败' + err.message);
  }
  // 3.2 打印成功的结果dataStr
  //  console.log('读取文件成功'+dataStr);
  // 4.1 先把成绩的数据,按照空格进行分割
  const arrOld = dataStr.split(' ');//!!!''中记得加一个空格
  // console.log(arrOld);
  // 4.2 循环分割后的数组,对每一项数据,进行字符串的替换操作
  const arrNew = [];//新建一个空数组arrNew
  //(1)用forEach(),遍历arrOld的每个数组元素
  arrOld.forEach(function (item) {//item指每个数组元素
    //(2)用push(),将遍历得出的结果,追加到arrNew数组中
    //(3)用replace(‘被替换的’,‘替换为的’),将原来的=替换为:
    arrNew.push(item.replace('=', ':'));
  })
  // console.log(arrNew);
  // 4.3 把新数组中的每一项,进行合并,得到一个新的字符串
  //(4)用join('分隔符'),将数组转换成字符串,用newStr接收这个值
  const newStr = arrNew.join('\r\n');//(5)\r代表回车  \n代表换行
  // console.log(newStr);
  // 5. 调用 fs.writeFile() 方法,把处理完毕的成绩newStr,写入到新文件成绩-ok.txt中
  //    参数1:表示文件的存放路径
  //    参数2:表示要写入的内容
  //    参数3:回调函数,err是成功/失败
  fs.writeFile('./成绩-ok.txt', newStr, function (err) {
    // 6. 判断是否写入成功
    if (err) {
      // 6.1 如果文件写入成功,则 err 的值等于 null
      // 6.2 如果文件写入失败,则 err 的值等于一个 错误对象
      console.log('成绩写入失败' + err.message);
    }
    console.log('成绩写入成功');
  })
})








本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/76467.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ATtiny13与Proteus仿真-8位通用定时器/计数器与PWM仿真

8位通用定时器/计数器与PWM 1、8位通用定时器介绍 ATtiny13的8位通用定时器/计数器有两个独立的输出比较单元,并支持PWM。这意味着,可以通过8位通用定时器/计数器生产PWM信号。关于PWM的介绍,在这里就展开介绍,请参考相关资料。 ATtiny13的8位通用定时器/计数器具有如下…

备战一年,终于斩获腾讯T3,老子一定有美好的未来...

我就是那个从25岁躺平,30岁开始醒悟的“中年秃头大叔”,这人一到了中年,思考问题的方向确实不一样了。以前我不想结婚不想养育后代,天天公司摸鱼,总觉得自己赚钱自己花就挺好,25岁赚一万,30岁还…

[ 数据结构 ] 排序算法--------七大内排,看完还不会写来揍我

0 前言 1.1 排序分类 内部排序和外部排序,前者数据加载到内存,后者数据量大需借助外部文件. 内部排序包含: 插入排序:直接插入排序,希尔排序 选择排序:简单选择排序,堆排序 交换排序:冒泡排序,快速排序 归并排序 基数排序 1.2 复杂度 1)度量一个程序时间有两种方法,事后统…

tp3.2实现websocket

首先从单服务器实现开始 我的系统是centos系统,lnmp搭建的环境,php5.6 1:首先检查环境是否支持 curl -Ss http://www.workerman.net/check.php | php PHP Version > 5.3.3 [OK] Extension pcntl check [OK] Extension posix check [OK] 2.…

Metal每日分享,均值模糊滤镜效果

本案例的目的是理解如何用Metal实现均值模糊效果滤镜,均值模糊原理其实很简单通过多个纹理叠加,每个纹理偏移量设置不同达到一点重影效果来实现模糊; Demo HarbethDemo地址 实操代码 // 均值模糊效果滤镜 let filter C7MeanBlur.init(radius: 0.5)//…

清除浏览器缓存

清除浏览器的缓存知识调用前言引入具体操作知识调用 文章中可能用到的知识点前端学习:浏览器缓存方式有哪些(http协议 websql indexDB cookie localstorage sessionstorage)如何查看Chrome浏览器的页面缓存内容【详细教程】 前言引入 上期文…

基于汇编的.NET高级调试

一:背景 1. 简介 .NET 高级调试要想玩的好,看懂汇编是基本功,但看懂汇编和能写点汇编又完全是两回事,所以有时候看的多,总手痒痒想写一点,在 Windows 平台上搭建汇编环境不是那么容易,大多还是用微软的 MASM + DosBox 搭一个 8086 的环境,这玩意距今快 50 年了。 在…

Node.js Event Loop 处理的几大周期介绍

Node.js Event Loop 处理的几大周期如下图所示: Timer:通过 setTimeout() 或 setInterval() 安排的一切都将在这里处理。 IO 回调:这里将处理大部分回调。 由于 Node.js 中的所有用户态代码基本上都在回调中(例如,对传…

深入理解机器学习——概率图模型(Probabilistic Graphical Model):马尔可夫随机场(Markov Random Field,MRF)

分类目录:《深入理解机器学习》总目录 马尔可夫随机场(Markov Random Field,MRF)是典型的马尔可夫网,这是一种著名的无向图模型,图中每个结点表示一个或一组变量,结点之间的边表示两个变量之间的…

Zookeper报错:Will not attempt to authenticate using SASL (unknown error)|防火墙的问题

先放一张debug成功的图吧~ 之前一直报这个错,不知道为什么,非常迷惑,然后试了多方法,就是防火墙的问题。我是Hadoop2.5和centos6,因此没法用systemtcl,就使用serive命令。 方式一:Linux命令来…

Kubernetes单主集群的部署(一)

目录 一、k8s单主架构集群的部署 1.操作系统初始化配置 2.部署 etcd 集群 3.部署docker引擎 4.部署 Master 组件 5.部署 Worker Node 组件 6.部署网络组件(使用 flannel) 一、k8s单主架构集群的部署 k8s集群master01:192.168.116.1…

纯手写2022年最新JVM调优实战手册,看完让你精通JVM调优

很多程序员不重视 JVM 内存调优,写出来的代码经常出现 OOM 等内存问题。而且,面试求职者中,很多求职者一旦遇到JVM 或者 JVM 调优方面的问题,往往不知如何回答,才能充分展现自己的能力。 jvm OOM问题实战分析 说说问题…

JS 原生面经从初级到高级【近1.5W字】

前言 是时候撸一波 JS 基础啦,撸熟了,银十速拿 offer; 本文不从传统的问答方式梳理,而是从知识维度梳理,以便形成知识网络; 包括函数,数组,对象,数据结构,算法,设计模式和 http. 1. 函数 1.1函数的3种定义方法 1.1.1 函数声明 //ES5 function getSum(){} function (){}//匿名…

【MATLAB教程案例56】VGG16网络的MATLAB编程学习和实现,以步态识别为例进行仿真分析

欢迎订阅《FPGA学习入门100例教程》、《MATLAB学习入门100例教程》 目录 1.软件版本 2.VGG16理论概述

ADI Blackfin DSP处理器-BF533的开发详解12:Memory DMA的使用详解(含源代码)

硬件准备 ADSP-EDU-BF533:BF533开发板 AD-HP530ICE:ADI DSP仿真器 软件准备 Visual DSP软件 硬件链接 接口功能介绍 MDMA 全称是 memoryDMA ,是内存到内存搬运数据的 DMA。在 DSP 做算法时,经常会遇到数据重组或者搬移&#…

谁说菜鸟不会数据分析 | 学习笔记(全)

一.前言 数据分析是为了提取有用信息和形成结论而对数据加以详细研究和概括总结的过程 数据分析的目的是把隐藏在一大批看似杂乱无章的数据背后的信息集中和提炼出来,总结出所研究对象的内在规律。在实际工作中,数据分析能够帮助管理者进行判断和决策&…

Linux | 进程信号 | 信号的产生 | 进程处理信号过程 | 进程pending,block,handler设置 | 用户态、内核态

文章目录信号的概念Ctrl C信号Linux中的信号信号产生前由终端产生信号由软件条件产生信号硬件异常产生信号core dump信号产生时sigset_tsigprocmask信号产生后用户态和内核态sigaction信号的概念 在日常生活中,我们看到绿灯选择过马路,看到红灯选择等待…

浅谈Java Web经典三层架构和MVC框架模式

从前端到后端整体架构做一个分析,通过这个分析更清楚的了解一下具体的前后端架构。以下三个架构属于三种架构,有共同点,但是并不是从属关系。 01 MVC模型 MVC是一种模型概念,绝大多数架构都是根据他来实现的,但是并不…

使用Docker+Jenkins+Gitee自动化部署Vue+ElementUI项目

参考本文章并打算跟着步骤进行构建部署的朋友们,建议直接先看踩坑总结,看看自己是否存在对应的问题,免得构建完才发现出错了,毕竟构建一次过程还挺长的。也可以自己走一遍后再参考如何解决啦。 1、Docker安装Jenkins 关于如何安…

使用 Monai 和 PyTorch 预处理 3D Volumes以进行肿瘤分割

1.介绍 针对在使用传统图像处理工具时可能遇到的困难,深度学习已成为医疗保健领域的主要解决方案。 因为医学图像比标准图像更难处理(高对比度、人体的广泛变化……)深度学习用于分类、对象检测,尤其是分割任务。 在分割方面&a…