Node.js:文件读取并将字符串作为数组放入数组中

use*_*255 1 javascript arrays string file node.js

我正在做一些项目,我需要读取一些文件并将splitted(带有\n - 新行)字符串作为数组放入数组中.这意味着读取文件的输出fs.readFileSync(filepath, 'utf8').split('\n'); 是字符串,我需要将其转换为数组,但有问题,因为我不知道如何.有一些输入数据的例子:

[[164,17567,160,[]],[166,8675,103,[]],
[[164,17567,160,[]],[166,8675,103,[]],
[[164,17567,160,[]],[166,8675,103,[]],
[[164,17567,160,[]],[166,8675,103,[]]
Run Code Online (Sandbox Code Playgroud)

我试图把它与for循环,但我无法以某种方式将其从字符串转换为数组,输出变为如下:

"[[164,17567,160,[]],[166,8675,103,[]]",
"[[164,17567,160,[]],[166,8675,103,[]]",
"[[164,17567,160,[]],[166,8675,103,[]]",
"[[164,17567,160,[]],[166,8675,103,[]]"
Run Code Online (Sandbox Code Playgroud)

Mar*_*ers 5

我建议你继续按换行分割,然后重新组合成一个没有换行的字符串,最后用JSON.parse解析.

var lines = fs.readFileSync(filepath, 'utf8').split('\n');
var rawData = '';
for (var l in lines){
    var line = lines[l];
    rawdata += line;
}
var data = JSON.parse('[' + rawdata + ']');
Run Code Online (Sandbox Code Playgroud)

然而!看起来(除非它是一个错字)每条线都有一个额外的开口方括号.这些必须在解析之前删除,如果你有任何控制权,最好从源数据删除:)

另外,为了使它成为有效的JSON,你必须将整个内容包装在"[]"中,如上所示.