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

use*_*421 3 javascript arrays hex file node.js

我想将一个数组转换为一个文本文件,并用换行符分隔每个条目。

我发现了一个名为 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`)
    })
Run Code Online (Sandbox Code Playgroud)

特别是ws.write(${v}\n)部分。

然后我将我的输出文本文件导入到十六进制编辑器中。在十六进制编辑器中,每个元素之间都有一个点。现在,这个点与普通点不同。

常规点的十六进制值为2E,而出现在元素之间的点的十六进制值为0A。另请注意,我使用的是 Windows 7,当用记事本查看时,元素之间没有任何显示 - 一个结束,另一个直接开始。

那么有没有办法修改我上面发布的代码中的那一行,所以它真的在那个部分创建了一个换行符?

Mar*_*ark 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");
Run Code Online (Sandbox Code Playgroud)

如果需要,你可以替换\n\r\n作为@Saif暗示的加入,但我似乎并没有必要,或许vscode自动为我虽然这样做。我在 Windows 机器上。