Javascript 存储txt文件中的数据

Javascript 存储txt文件中的数据,javascript,jquery,html,text,Javascript,Jquery,Html,Text,我有一个txt文件,如下所示: ID Number Hour Name Mood Seconds Hour2 1 29.1 11:32:37 Tim Good 0954 11:32:34 PM 2 31.9 11:33:19 Tim Fine 1251 11:33:15 PM 3 32.0 11:54:16 Tim Excellent 1897 11:54:12 PM 4 36.6 12:00:43 Time Good 0997 12:00:37 PM var rows = fileConte

我有一个txt文件,如下所示:

ID Number Hour Name Mood Seconds Hour2
1 29.1 11:32:37 Tim Good 0954 11:32:34 PM
2 31.9 11:33:19 Tim Fine 1251 11:33:15 PM
3 32.0 11:54:16 Tim Excellent 1897 11:54:12 PM
4 36.6 12:00:43 Time Good 0997 12:00:37 PM
var rows = fileContent.split("\n");

正如我们所看到的,它不是CSV值,而是空间分隔的。如何将这些数据存储在变量中(每列一个)?一旦我使用html代码、javascript或jQuery将这些数据存储在变量中,我想使用它们来绘制它们,但这将在以后进行。

这应该是可行的。你可能需要稍微调整一下,但这会对你有所帮助

因此,首先我们需要加载文件并将值赋给变量

var fileContent;
$.ajax({
    url : "text.txt",
    dataType: "text",
    success : function (data) {
        fileContent = data;
    }
});
然后,正如我说的,你必须寻找空格和换行符。你知道,当断线发生时,可以说一切都“重新开始”

因此,让我们使用jQuery的
.split()
函数,如下所示:

ID Number Hour Name Mood Seconds Hour2
1 29.1 11:32:37 Tim Good 0954 11:32:34 PM
2 31.9 11:33:19 Tim Fine 1251 11:33:15 PM
3 32.0 11:54:16 Tim Excellent 1897 11:54:12 PM
4 36.6 12:00:43 Time Good 0997 12:00:37 PM
var rows = fileContent.split("\n");
现在应该有一个长度为5的数组,每行一个。通过这些循环并按
拆分它们。我们跳过第一行(索引0),因为它们不是数据。同样如注释所示,必须跳过最后一个空格,因为这是数据的一部分

var id = "";
var number = "";
var hour = "";
var name = "";
var mood = "";
var seconds = "";
var hour2 = "";

var array = [id,number,hour,name,mood,seconds,hour2];
for(var j = 0; j < rows.length; j++){
    var columns = rows[j].split(" ");
    for(var i = 0; i < columns.length; i++) {
        if(i == 5){
            $array[i].= columns[i]+" "+columns[i+1];
            break;
        }

        array[i].= columns[i];
    }
}
console.log(array);
var id=”“;
var数=”;
var hour=“”;
var name=“”;
var mood=“”;
var秒数=”;
var hour2=“”;
var数组=[id,number,hour,name,mood,seconds,hour2];
对于(var j=0;j

这应该对你有很大帮助。可能并不完美,但您已经明白了。

将数据拆分为行。然后拆分第一行,并将结果作为其他数据/行的键。然后,尝试阻止未定义的列('PM'),并将结果添加到前一列

var data='ID Number Hour Name Mood Seconds Hour2\n1 29.11:32:37 Tim Good 0954 11:32:34 PM\n1 31.9 11:33:19 Tim Fine 12511:33:15 PM\n3 32.0 11:54:16 Tim excellence 1897 11:54:12 PM\n4 36.6 12:00:43 Time Good 0997 12:00:37 PM';
var newData=[],键;
data.split('\n').forEach(函数(行,i){
var-res;
如果(!i){
键=行分割(“”);
}否则{
res={};
行分割(“”).forEach(函数(el,j){
如果(键[j]){
res[key[j]]=el;
}否则{
res[keys[j-1]+=''+el;//时间校正
}
});
newData.push(res);
}
});
document.getElementById('out').innerHTML=''+JSON.stringify(newData,null,4)+''

查找空格和换行符,这是关键。首先,非常感谢您的回答。我不确定我是否知道如何加载它。我要做的是:var data=newXMLHttpRequest();data.open('GET','/data.txt');data.onreadystatechange=函数(){alert(data.responseText);}data.send();但我不知道这些数据将如何组织。我在MATLAB中编写了很多代码,很容易观察到数据是如何存储在变量中的,但是在这里,由于不可能看到它,这让我发疯。我只想读取数据,将其存储在类似于向量的东西中(例如:vector1(0)=29.1,vector1(1)=31.9等等)。谢谢@jquery\u stack更新了我的答案。再次非常感谢!现在我想我至少明白了。当我将html文件加载到Firefox时,我得到一个空白页面。。。我尝试了Firefox控制台,得到了以下JS错误:SyntaxError:missing)after参数列表。你知道这个错误可能在哪里吗?此外,console.log语句是否显示结果?(因为在Flot图表中绘制结果之前查看结果会很有用)。非常感谢您抽出时间,我真的很感激。在下一篇评论中,我将发布我正在使用的html代码,以备您需要:)@jquery\u stack我在帖子中编辑了代码,发现两处遗漏。并且console.log在浏览器控制台中输出变量。因此,如果您在web浏览器中进行检查,您应该会在那里看到它。完整代码在此图像中:。我试图添加