使用Javascript从文本文件中分离数据
我正在创建一个分析页面,使用文本文件中存储的数据。文本文件用于my highcharts图形,并按如下方式分开:使用Javascript从文本文件中分离数据,javascript,html,arrays,text-files,Javascript,Html,Arrays,Text Files,我正在创建一个分析页面,使用文本文件中存储的数据。文本文件用于my highcharts图形,并按如下方式分开: November 7th 6AM,19.8 November 7th 6PM,19.8 November 8th 6AM,20.4 November 8th 6PM,14.6 November 9th 6AM,15.9 November 9th 6PM,15.1 November 10th 6AM,16.4 November 10th 6PM,16.4 我希望将这些数据分成12个日
November 7th 6AM,19.8
November 7th 6PM,19.8
November 8th 6AM,20.4
November 8th 6PM,14.6
November 9th 6AM,15.9
November 9th 6PM,15.1
November 10th 6AM,16.4
November 10th 6PM,16.4
我希望将这些数据分成12个日历窗格,显示每个月的总体差异。例如,如果一个日期的值为16,然后在下一次读取时它下降到10,则取该月发生次数的累计总和
如何确保它以正确的顺序读取文本文件,并检查下一个值是否低于10,并在某个地方与之吻合?Yo可以使用jQuery将文件数据分离到数组中
$(document).ready(function() {
//fetch text file
$.get('text.txt', function(data) {
//split on new lines
var lines = data.split('\n');
for(var i=0;i<lines.length;i++) {
// use lines[i] the way you want
}
});
});
这样,您可以分离数据并根据需要使用它。您需要
- 人们通常使用AJAX(XMLHttpRequest)来实现这一点
- 您的数据似乎足够整洁,因此您可以使用
获取文件中每一行的月份名称,并使用line.split(“”[0]
获取值。将文本拆分为行通常与line.split(“”,“,”[1]
文本一样简单。拆分(“\n”)
- 对于您现在拥有的每个月值对,比较月份的名称。如果它是一个匹配项,并且该值已更改
,则在您的账簿中增加一个值,例如x
。保存名称-值对并继续差异[monthName]+
//获取数据
var req=新的XMLHttpRequest();
req.onreadystatechange=函数(){
如果(req.readyState==4&&req.status==200){//如果请求完成,状态代码为“OK”
handleImportantData(请求响应文本);
}
};
//定义要使用异步获取URL方法的请求。
请求打开(“GET”,“maintal_data.txt”,true);
请求发送();
函数句柄重要数据(数据){
var-treshold=5.0;
变量月份={};
var差异={};
//单独的数据点。
变量行=数据分割(“\n”);
行。forEach(函数(行){
//如果数据格式不正确,| | 0.0部分将值设置为零。
//我们将值解析为浮点数,以防止它保存为字符串,
//这将使其上的算术运算无法按预期工作。
月[line.split(“”[0]]=parseFloat(line.split(“”,“”[1])| | 0.0;
});
//找出差异。
前一个变量={
姓名:“,
数值:0.0
};
for(变量名称,以月为单位){
//如果还没有,则使用三元操作(包括NOP)初始化数据点。
差异[名称]?{}:差异[名称]=0.0;
//如果我们仍然在谈论与以前相同的月份和价值
//已更改超过我们的treshold,请将其另存为差异。
如果name===previous.name&&Math.abs(previous.value-months[name])>treshold{
差异[名称]+;
}
以前的={
姓名:姓名,,
价值:月[名称]
};//将此设置为上一个值。
}
//在这里,我们已经准备好差异数据存储在变量差异中。
}
“12个日历窗格中的数据”-显示预期结果的外观
var a = s.indexOf(',');
var b = s.substring(a,4);