案例目标
JSON文件初始为空,运行c.js文件后,将a的文件内容转为图中b的内容格式.
案例代码
// 分析
// 1.读入数据
// 2.数据处理
// 1.将字符串截取为数组
// 2.遍历循环数据,插到对象里面
// 3.定义求和与长度
// 3.写入数据
// 定义fs path模板
let fs = require('fs')
let path = require('path')
// 定义空数组,用来接收处理的数据
let list = []
// 定义空对象,用来接收完整数据
let re = {}
// 定义求和变量
let sum = 0
// 定义平均值
let average = 0
// 定义长度,总和除长度 = 平均数
let total = 0
// 1. 读入数据
fs.readFile(path.join(__dirname, 'a.txt'), 'utf8', (err, data) => {
if (err) {
console.log('err', err)
return
}
// console.log(data)
// 处理数据,转为数组
let a = data.split('\r\n')
// 接收length长度
total = a.length
// 2.处理数据
a.forEach((item, index) => {
// 定义对象,接收数据
let obj = {
// 接收姓名
name: item.split(',')[0],
// 接收年龄
age: item.split(',')[1],
}
// 将对象插入到定义的list对象中
list.push(obj)
// 求和
sum += +item.split(',')[1]
})
// 求平均值
average = sum / total
// 组合最终对象
re = {
list,
average,
total,
}
// 转为json字符串
re = JSON.stringify(re)
// 写入数据
fs.writeFile(path.join(__dirname, 'b.json'), re, 'utf8', (err, data) => {
if (err) {
return
}
console.log(data)
})
})