如何使用节点js缓冲区和转换映射
我正在关注一个关于nodejs的教程。 在教程中有这个例子:
const fs = require('fs'); const conversionMap = { '88': '65', '89': '66', '90': '67', }; fs.readFile(__filename, (err, buffer) => { let tag = buffer.slice(-4, -1); for(let i=0;i < tag.length; i++) { tag[i] = conversionMap[tag[i]]; } console.log(buffer.toString()); }); // TAG: XYZ
我很确定我知道这个例子在做什么。 它正在读取文件,然后将其分配给一个缓冲区并写出来。 我知道它通过slice(-4, -1)
find了TAG
slice(-4, -1)
从底部开始标记1并且结束)。 我只是不确定它会改变它。
先谢谢您的帮助!
是的,它每次都会改变,因为它正在运行一个循环并迭代我的值。
标签会给你的buffer.sliced值和tag.length将有这个数字。
所以我的值将有一个初始化为0,然后它将运行循环,直到它到达tag.length
因此,如果buffer.slice(-4,-1)产生“text”,那么循环会将tag.length视为4, 我将考虑最多3(i <tag.length)。
所以, conversionMap是一个映射,它执行Key = value映射。
在这种情况下, 88是关键,对应的值是65 。 但是,它正在对字符的十进制值 (即i)进行转换。
您可以在ASCII表格中检查以供参考。