我有一个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) {
}
}
收效甚微,因为我当然不知道如何存储它,目标是复制文本文件格式的多维数组,因此后者可用于按索引或实例跟踪搜索用户输入以获得结果。
我真的很感激任何帮助。
答案 0 :(得分:0)
乍一看,您似乎正在尝试读取CSV文件。如果确实如此,我建议使用node-csv:
答案 1 :(得分:0)
这有助于我将文件读取到JavaScript,但是此示例将检索到的数据转换为JSON。只是看一下你的文本文件的格式,我会假设一个JSON字符串或Javascript对象可以处理你的数据。
使用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的说明 - 这个问题是有效的,但不适用于此网站。它太笼统了,关于"的问题可以帮助我写这个项目"即使您是初学者,也不被认为是合适的。因为你是新人,我不会对你进行投票,但是请将其分成更小的子问题(并且一定要先研究它们,语言问题通常已经得到解答)。