1.准备a.txt文件 如图:
2.代码实现内容:
思路:
2.1 读取a.txt文件内容
2.2 转为数组格式添加内容,并转为b.json数据格式
(1)将读取的数据字符串格式截取为数组格式,
(2)遍历数组,
(3)创建对象的name和age属性,
(4)将obj添加到数组当中, 并整理格式到newObj当中,
(5)转为json文件格式
2.3 写入到json文件当中
const fs = require('fs') //导入fs模块
const path = require('path') //导入path模块 处理路径
// 1. 读取a.txt 文件内容
let dir = path.join(__dirname, 'a.txt')
fs.readFile(dir, 'utf8', (err, data) => {
if (err) {
console.log(err)
return
}
console.log(data)
//2.将字符串数据截取成数组
let arr = data.split('\n')
let newArr = []
let sum = 0
arr.forEach(item => {
let obj = {}
obj.name = item.split(',')[0]
obj.age = + item.split(',')[1]
newArr.push(obj)
sum += obj.age
// console.log(newArr.length);
let newObj = {
list: newArr,
average: sum / newArr.length,
total: newArr.length
}
// 将新对象转为json格式
let json = JSON.stringify(newObj)
console.log(json)
// 3. 写入json文件名,会自动创建json文件并写入json内容
fs.writeFile('b.json', json, (err, data) => {
console.log('写入成功', err)
})
})
})
终端检测
3.检查json文件内容
{
"list": [
{
"name": "小王",
"age": 19
},
{
"name": "小李",
"age": 20
},
{
"name": "小陈",
"age": 21
}
],
"average": 20,
"total": 3
}
总结:在这个案例当中,用到了几个api方法:
1.forEach :遍历数组
2.split:分隔字符串为数组
3.arr.push : 添加元素到数组的末尾
4.JSON.stringify() : 将js当中的数组,对象转为json格式