a.txt
小王,19
小李,20
小陈,21
b.json
{
"list":[
{"name":"小王","age":19},
{"name":"小李","age":20},
{"name":"小陈","age":21}
],
"average":20,
"total":3
}
完成代码
let fs = require('fs')
let path = require('path')
//引入模块
//读取内容
fs.readFile(path.join(__dirname,'a.txt'),'utf8',function(err,data){
if(err){
console.log(err);
return
}else{
// console.log(data.split('\n'));
let num = 0//用于接收次数
let sum = 0 //用于接收数的总数,方便计算平均值
let arr = [] //新数组接收设置的数据
data.split('\n').forEach(item=>{
// 用/n把数据分割
//拆分成数组,遍历数组
// 空对象接收设置的对象数据,方便增加到数组里
let obj = {}
// 循环一次增加一次数据
// 以逗号为分割分别获取两个值
obj.name = item.split(',')[0]
obj.age = 1*item.split(',')[1] // 这里面用到了隐式转换//转换成数字
arr.push(obj)
// 再把obj数据增加到数组里
sum+=obj.age
//求三个数的和,方便求平均值
num++
// 每循环一次增加一
})
// console.log(arr);
let out = {
list: arr, //数据
average:sum/num,//平均值 总数除以次数
total:num //次数
}
console.log(out);
把内容读出到新的文件
// JSON.stringify(out)
fs.writeFile(path.join(__dirname,'C.json'),JSON.stringify(out),function(err){
console.log(err);
})
}
})