我的文本文件包含以下结构:
2013-12-31 15:42,1
2013-12-31 15:45,1
2013-12-31 15:45,0
2013-12-31 16:18,0
2013-12-31 16:18,1
2013-12-31 16:27,1
2013-12-31 16:27,0
2013-12-31 17:11,0
2013-12-31 17:11,1
2013-12-31 18:11,1
2013-12-31 18:11,0
我通过get()导入它:
$.get('graph_data.txt', function(data){
...}
工作正常。后来我将这个数据解析为数组:
var array3 = data.split("\n");
但我需要做的是用逗号或换行符拆分它。我知道分裂可以得到正则表达式,但我所做的所有尝试都没有成功:
.split("[,\\n]");
.split("/,|\s/");
.split("/,|\s/m");
对我来说有用的是分两步完成 - 首先拆分一个分隔符然后再拆分一个分隔符:
var array3 = data.split("\n")[0].split(",");
var array5 = data.split("\n")[1].split(",");
但如果我在文件中有更多数据,那就太疯狂了。
更多地了解我想要实现的目标: 我需要获得用于绘制图表的一系列coordainates。第一个值是日期,第二个值是0或1.
var line=[
['2013-12-31 15:42',1],
['2013-12-31 15:45',1],
['2013-12-31 15:45',0],
['2013-12-31 16:18',0],
['2013-12-31 16:18',1],
['2013-12-31 16:27',1],
['2013-12-31 16:27',0],
['2013-12-31 17:11',0],
['2013-12-31 17:11',1],
['2013-12-31 18:11',1],
['2013-12-31 18:11',0]
];
我这样做是通过将每对中的第二个字符串映射到int:
var a1 = [array3[0], array5[0]];
var a2 = [array3[1], array5[1]];
var line1 = a1.map(function(e,i){ return [e, parseInt(a2[i]) ] });
您是否知道我如何处理提到的分割功能,以便一次性使用两个分隔符?
答案 0 :(得分:5)
var data = data.split("\n").map(function (line) {
var line = line.split(",");
return [ line[0], parseInt(line[1], 10) ];
}
console.log(data);
这会给你
[
[ '2013-12-31 15:42', 1 ],
[ '2013-12-31 15:45', 1 ],
[ '2013-12-31 15:45', 0 ],
[ '2013-12-31 16:18', 0 ],
..
]
您不能在一个语句中按行和列分隔,也不能理解为什么要这样做。