txt内容是姓名-成绩,需要拿到内容后按照成绩进行排序再写入新文件
1、txt 文件内容
小红-99 小白-100 小路-90 小黑-80
2、读取文件内容
const fs = require('fs')
fs.readFile('./file/成绩.txt','utf8',function(err,data){
if(err){
return console.log('读取失败',err)
}
console.log(data)
})
3、处理数据
const arr = data.split(' ')
// [ '小红-99', '小白-100', '小路-90', '小黑-80' ]
const newarr = [];
arr.forEach(item => {
newarr.push(item.split('-'))
})
// [ [ '小红', '99' ], [ '小白', '100' ], [ '小路', '90' ], [ '小黑', '80' ] ]
4、这时候就可以对数据进行排序了,需要按照每个数组的第二个值排序
newarr.sort(compare())
// [ [ '小黑', '80' ], [ '小路', '90' ], [ '小红', '99' ], [ '小白', '100' ] ]
function compare() {
return function (a,b){
var value1 = a[1];
var value2 = b[1];
return value1 - value2;
}
}
5、拼接处理后的数据
newarr.forEach((item,index)=>{
newarr[index] = item.join('=')
})
const newarrsort = newarr.join('\r\n')
/**
小黑=80
小路=90
小红=99
小白=100
*/
6、写入新的文件
fs.writeFile('./file/成绩-sort.txt',newarrsort,function(err){
if(err) console.log('写入失败')
})
7、写入后文件内的数据