gpt4 book ai didi

JavaScript: "split"函数的正则表达式排除逗号和换行符

转载 作者:行者123 更新时间:2023-11-28 13:36:37 24 4
gpt4 key购买 nike

我有以下结构的文本文件:

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 可以得到正则表达式,但我所做的所有尝试都没有成功:

.split("[,\\n]");
.split("/,|\s/");
.split("/,|\s/m");

对我来说有效的是分两步完成 - 首先用一个分隔符分隔,然后用第二个分隔符分隔:

var array3 = data.split("\n")[0].split(",");
var array5 = data.split("\n")[1].split(",");

但是如果我的文件中有更多数据,这就太疯狂了。

<小时/>

为了更清楚地说明我想要实现的目标:我需要获取用于绘制图表的坐标数组。第一个值是日期,第二个值是 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]) ] });

您知道如何处理提到的拆分功能以使其一次性使用两个分隔符吗?

最佳答案

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 ],
..
]

您不能在一个语句中按行和列进行分隔,我也不明白为什么您应该这样做。

关于JavaScript: "split"函数的正则表达式排除逗号和换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20908526/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com