如何使用节点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表格中检查以供参考。