从文本文件获取数据到多维数组Javascript

时间:2014-06-20 14:56:05

标签: javascript arrays node.js multidimensional-array text-files

我有一个JavaScript函数的问题,需要从TextFile读取数据(JS已经限制了),然后将TextFile数据处理成MultiDimensional数组(另一件事是JS没有' t nativelly suport)。

考虑到这一点,我有一个这种格式的文本文件:

1, Name, Data, Serial
2, Name, Data, Serial
3, Name, Data, Serial

等等。

因此,目标是获取相同的数据并将其放入数组中。

我想,从我读过的内容来看,我需要一个数组数组,用行[/ n]分割第一个数组,用逗号[,]分割第二个数组。但是,鉴于"默认情况下"限制,我在这一点上非常困惑。我确实认为我需要jQuery。

我试过了:

var fs = require('fs');
var array = fs.readFileSync('file.txt').toString().split("\n");
for(i in array) {
  var array = fs.readFileSync('file.txt').toString().split(",");
  for(f in array) {

  }
}

收效甚微,因为我当然不知道如何存储它,目标是复制文本文件格式的多维数组,因此后者可用于按索引或实例跟踪搜索用户输入以获得结果。

我真的很感激任何帮助。

3 个答案:

答案 0 :(得分:0)

乍一看,您似乎正在尝试读取CSV文件。如果确实如此,我建议使用node-csv:

http://www.adaltas.com/projects/node-csv/

https://github.com/wdavidw/node-csv

答案 1 :(得分:0)

这有助于我将文件读取到JavaScript,但是此示例将检索到的数据转换为JSON。只是看一下你的文本文件的格式,我会假设一个JSON字符串或Javascript对象可以处理你的数据。

Example convert to JSON

使用JSON和JS对象,而不是引用数组索引,例如。阵列[I] [X]。你会用.propertyName

替换[x]
 data = {
 "id": 1,
 "name": "Fred"
 };
 //access data like this
 data[i].name      //will return "Fred" as i =0

创建JS对象,只需初始化不带“”(引号)的数组属性。访问JS和JSON属性的方式相同,与多维数组相比,主要优点是可以引用实际的属性名称,而不是索引。

答案 2 :(得分:0)

首先,为了清理,javascript确实有原生2D数组。只是谷歌吧。其次,Node的FS模块非常适合逐行读取文本文件。那里可能有很多教程。

因此,首先编写一个逐行遍历文件的脚本,也许使用console.log将它们记录下来。当你想出来的时候,那就不用做console.log而只是用逗号分隔每一行(只是javascript' s本地数组拆分方法)。这将返回一个数组。将这个阵列(也是一个阵列推送方法)推到线阵列上,你就会有一个应该工作的二维阵列。

最后,关于Stack Overflow的说明 - 这个问题是有效的,但不适用于此网站。它太笼统了,关于"的问题可以帮助我写这个项目"即使您是初学者,也不被认为是合适的。因为你是新人,我不会对你进行投票,但是请将其分成更小的子问题(并且一定要先研究它们,语言问题通常已经得到解答)。