【问题标题】:How to read the content of a .txt file as an array with javascript?如何使用 javascript 将 .txt 文件的内容作为数组读取?
【发布时间】:2021-01-12 12:44:00
【问题描述】:

我想将数组保存在.txt 文件中,然后执行fs.readFile 来恢复它们并使用javascript 将它们保存在变量中。目前我的代码读取文件并将其保存为字符串。

保存在文件中的数组示例:

[[7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7],
[7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7],
[7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7],
[7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7],
[7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7],
[7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7]]

我的相关代码:

var data = fs.readFileSync('./Arrays/'+array1+'.txt', 'utf8');
console.log(data) // logs the array as a string
console.log(typeof data) // returns string

我想要

var data = fs.readFileSync('./Arrays/'+array1+'.txt', 'utf8');

等价于

var data =  [[7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7],
    [7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7],
    [7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7],
    [7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7],
    [7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7],
    [7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7]];

【问题讨论】:

  • 为什么不把它保存为.json 然后直接用require?
  • 你能举个例子吗?
  • 我加了一个最小的

标签: javascript node.js arrays fs


【解决方案1】:

我不确定这样做是否正确,因为它会带来巨大的风险,但您可以使用eval(string) 并将其转换为数组。您也可以尝试拆分它,但由于它是一个二维数组,因此需要付出更大的努力。

编辑:您也可以尝试使用JSON.parse(string)。更多信息here

【讨论】:

  • 感谢您的建议。它按预期工作!你能解释一下为什么会有风险吗?
  • 因为 eval() 将执行作为输入提供的任何 JS 代码,因此它可能会突然导致错误。检查JSON.parse(string),因为它更安全。如果我帮助了你,请选择我的答案正确。
  • 哇,再次感谢。我不明白......在问这个问题之前,我使用了 JSON.parse() 并且它没有按预期工作。可能还有另一个错误(也许我忘记了编码)。现在可以使用了。
【解决方案2】:

假设myData.json 包含

[[3,4,5,6,7,8,9], [1,2,3,4,56,76]]

然后从另一个文件(假设在同一个文件夹中)

const myData = require('./myData.json')
// now consume it
console.log(myData)

【讨论】:

  • 感谢您的宝贵时间。这也是一个好主意,但是 @vmank 的解决方案更接近我想要的。
  • np... 我只是想知道为什么不使用json 扩展名而不是txt,因为事情更容易。
猜你喜欢
  • 2019-01-19
  • 1970-01-01
  • 1970-01-01
  • 2021-08-02
  • 1970-01-01
  • 1970-01-01
  • 2015-04-26
  • 1970-01-01
  • 2012-04-30
相关资源
最近更新 更多