如何从数组中的外部文件加载数据

时间:2014-08-04 20:46:28

标签: javascript arrays file variables

尝试了一整天使用jquery从文件加载数据后,我没有成功。 在javascript中,我将一个值数组定义为全局变量,它将在以下函数中使用。变量如下所示:

var Yvalue01 = [7.0,6.9,9.5,14.5,18.2,21.5,25.2,26.5,23.3,18.3,13.9,9.6]

但是,我想从具有以下内容的服务器上的文本文件中加载这些值:

7.0,6.9,9.5,14.5,18.2,21.5,25.2,26.5,23.3,18.3,13.9,9.6

我怎样才能在javascript(没有php)中做到这一点?

2 个答案:

答案 0 :(得分:1)

您可以使用XHR请求来检索文件并解析它,例如

function reqListener () {
    var Yvalue01 = this.responseText.split(",");//Split the response by commas
    Yvalue01 = Yvalue0.map(function (el) { return parseFloat(el);});//Parse the values to make them numbers
    //Do stuff with your array
}

var oReq = new XMLHttpRequest();
oReq.onload = reqListener;
oReq.open("get", "yourFile.txt", true);
oReq.send();

有关详细信息,请参阅MDN文档:https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest

Jquery和其他javascript库(例如dojo)具有更好的api,例如

答案 1 :(得分:0)

你必须使用AJAX来获取文件,然后解析它。

例如,下面的代码获取一个名为data.txt的文件,该文件具有以下数字并将其加载到名为values的数组中。

data.txt内的内容:

7.0, 6.9, 9.5, 14.5, 18.2, 21.5, 25.2, 26.5, 23.3, 18.3, 13.9, 9.6

这里是代码:(需要jQuery,因为它更容易)

function getFile(location)
{
    var result;
    $.ajax(
    {
        type: 'GET',
        async: false,
        url:  location,
        success: function(data) {
            result = data;
        },
        fail: function() {
            result = null;
        }
    });
    return result;
}

var values = getFile("data.txt").split(",");

location 变量是服务器上文件的相对文件路径的字符串。