我知道 this implementation 用于调用本地文本文件。
我的问题是,我不希望它异步读取文件。相反,我希望函数读取文件并将输出作为字符串变量返回。
我的文件采用以下格式:
time acceleration velocity position
0 0 0 0
0.1 0.7584280404 0.075842804 0.0075842804
0.2 0.1291023633 0.0887530404 0.0164595844
0.3 0.4040327317 0.1291563135 0.0293752158
0.4 0.8891570587 0.2180720194 0.0511824177
0.5 0.3481323377 0.2528852532 0.0764709431
0.6 0.8920292137 0.3420881745 0.1106797605
0.7 0.7375283292 0.4158410075 0.1522638613
0.8 0.2647998196 0.4423209894 0.1964959602
0.9 0.633358462 0.5056568356 0.2470616438
1 0.3901214569 0.5446689813 0.3015285419
1.1 0.4712272086 0.5917917022 0.3607077121
1.2 0.693854515 0.6611771537 0.4268254275
1.3 0.4248616176 0.7036633154 0.497191759
输出将存储在包含以下字段的obj
中
obj.time
obj.acceleration
obj.velocity
obj.position
这些字段必须从文本文件的第一行获取。一切都是从本地主机完成的,没有什么是远程的,所以我不关心加载繁重的 js
库需要多长时间。如果有人让我知道我正在寻找的东西是否有捷径,那就太好了。如果没有库可以做到这一点,请告诉我至少如何同步读取文件。
最佳答案
您可以使用get请求来下载文件内容并自行解析数据。使用 jQuery get 方法(您基本上可以用任何其他库替换 jQuery,或者忘记任何额外的库并手动发出 xhr 请求):
$.ajax({
url: 'http://domain.com/path/to/your/file.txt',
async: true
}).
success(function (data) {
var parsedData = parseMyFormat(data);
console.log(parsedData[0].position);
});
function parseMyFormat (data) {
var parsed = [];
//split your data by new line and iterate over lines
var item = {};
//split each line by tab (\t) and put
item.time = col[0];
item.acceleration = col[1];
item.velocity = col[2];
item.position = col[3];
parsed.push(item);
}
关于Javascript同步加载表文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35566884/