案例目标
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)
})
})