[英]Node.js Array to text with newline
我想将数组转换为文本文件,并用换行符分隔每个条目。
我发现了一个名为array-to-txt-file的npm软件包。 这是网页: array-to-txt-file
该程序包声称将用换行符连接数组的每个元素,以便数组的每个元素在文本文件上单独显示。
因此,我尝试了一下,虽然效果很好,但它不会将元素与换行符连接在一起。 一个元素结束的地方,另一个元素开始。
因此,我看了一下包的源代码,这就是产生这种效果的代码。
try {
array.forEach(v => {
if(_.isPlainObject(v)) {
ws.write(`${JSON.stringify(v)}\n`)
return
}
ws.write(`${v}\n`)
})
特别是ws.write(
$ {v} \\ n )
部分。
然后,我将输出文本文件导入到十六进制编辑器中。 在十六进制编辑器中,每个元素之间都有点。 现在,该点不同于常规点。
常规点的十六进制值为2E
,而出现在元素之间的点的值为0A
。 另请注意,我使用的是Windows 7,使用记事本查看时,元素之间没有任何显示-一个元素结束,另一个元素开始向上。
那么,有没有办法在我上面发布的代码中修改该行,从而真的在该部分中创建换行符?
有简单的join
对您不起作用的某些原因吗?
let arr = ["a", "b", "c", "d", "e", "f"];
console.log(arr); // [ 'a', 'b', 'c', 'd', 'e', 'f' ]
console.log(arr.join('\n'));
// a
// b
// c
// d
// e
// f
let text = arr.join('\n');
fs.writeFileSync('modified.txt', text, "utf8");
如果需要,你可以替换\\n
与\\r\\n
在加入成为@Saif建议,但我似乎并不需要,也许vscode自动为我虽然这样做。 我在Windows机器上。
\\r
(0D)是回车(CR)字符(U + 000D) \\n
(OA)为线路进给(LF)字符(U + 000A) 在Linux上, \\n
代表换行符。
\\r\\n
组合的两个字符代表Windows上的新行。
在模块的index.js
文件中的两个write
语句中,尝试用\\n
\\r\\n
替换\\n
。
这些点代表不可打印的字符。 而经常点.
完全停止(U + 002E)由2E
表示。
更多信息: https : //en.wikipedia.org/wiki/Newline
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.