繁体   English   中英

Node.js数组到换行符的文本

[英]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机器上。

在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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM