从文本文件构建数组(奇怪的格式)

时间:2019-08-15 16:07:52

标签: javascript arrays

我有一个文本文件,如下所示:

name
birthday
text
other



name2
birthday2
text2
other2

超过10000行。 我想把它变成一个像这样的javascript数组:

 [[name,birthday,text,other],[name2,birthday2,text2,other2], ...]

每2组之间有4行(“ other”和“ name2”之间)。我要花几个小时才能手动完成。

我在搜索时为javascript找到的readfile函数都处理逐行格式,而没有一个具有类似的组格式化功能。

2 个答案:

答案 0 :(得分:0)

您可以阅读文本文件并根据每个组期望的行数进行相应的解析:

const fs = require('fs')

fs.readFile('test.txt', 'utf-8', (err, data) => {
    let rows = data.split('\n\n\n\n').map(row => row.split('\n'))
    console.log(rows)
})

'\n\n\n\n'的第一个拆分用于4行分隔。

这将打印:

[ ['name', 'birthday', 'text', 'other'], ['name2', 'birthday2', 'text2', 'other2'] ]

答案 1 :(得分:0)

@dandavis的答案非常有效。

将整个文件加载到一个字符串中,然后执行以下操作:

var myarray = str.split(/\n{3,}/).map(x=>x.trim().split(/\n/));