我正在关注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
我很确定我知道这个例子是做什么的。它正在读取文件,然后将其分配给缓冲区并将其写出。我知道它通过TAG
找到了slice(-4, -1)
(标签从底部开始向上并且结束)。我只是不确定它会改变它。
提前感谢您的帮助!
答案 0 :(得分:1)
是的,它每次都会改变,因为它正在运行循环并迭代 i 的值。
标记将为您提供 buffer.sliced 值, tag.length 将包含该数字。
因此 i 值将初始化为0,然后它将运行循环,直到达到 tag.length
因此,如果 buffer.slice(-4,-1)导致“text”,那么循环将 tag.length 视为4和我将考虑最多3(i&lt; tag.length)。
因此, conversionMap 是一个执行Key =值映射的地图。
在这种情况下, 88 是键,相应的值为 65 。 但是,它正在进行字符的十进制值(即i)的转换。
您可以在ASCII表中查看,以供参考。