Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/451.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript读取文本文件并将值附加到数组中_Javascript_Arrays - Fatal编程技术网

Javascript读取文本文件并将值附加到数组中

Javascript读取文本文件并将值附加到数组中,javascript,arrays,Javascript,Arrays,我在用函数填充JavaScript数组时遇到问题 我有一些使用JavaScript的图表软件。我可以将自己的值直接输入数组,以创建所需的图表,如下所示: var data_array=[[0,170],[0,185],[0,179]] 数组中的第一个值对应于样本号e、g、0,第二个值对应于高度,例如170、185等。 这是可行的,但我最终会有一个包含数千个价值观的庞大列表。高度值将存储在文本文件中。每个样本将有一个不同的文件。文本文件将包含由行分隔的值的简单列表 我需要我的程序做的是打开一个文

我在用函数填充JavaScript数组时遇到问题

我有一些使用JavaScript的图表软件。我可以将自己的值直接输入数组,以创建所需的图表,如下所示:

var data_array=[[0,170],[0,185],[0,179]]
数组中的第一个值对应于样本号e、g、0,第二个值对应于高度,例如170、185等。 这是可行的,但我最终会有一个包含数千个价值观的庞大列表。高度值将存储在文本文件中。每个样本将有一个不同的文件。文本文件将包含由行分隔的值的简单列表

我需要我的程序做的是打开一个文本文件,提取值,然后将它们附加到数据数组中。到目前为止,我有:

$.get('sample0.txt', function(data, data_array){

    var lines=data.split('\n');
    for (var i=0; i<lines.length-1;i++){
        var item=lines[i];
        data_array.push([0,item]);
    }
    return data_array
}
这不起作用,尽管我知道它正确地从文本文件中提取了值。我不担心样本号,因为我可以为每个文件设置样本号。我的问题是如何填充数组并使该数组存在于函数之外

我通常用PHP编写代码,很抱歉我的JavaScript知识非常基础

// set this somewhere outside of the $.get callback.
// no need to pass it in as it will be available in that scope.
var data_array = [];

$.get('sample0.txt', function(data) {
    var lines=data.split('\n');
    for (var i=0; i<lines.length;i++){
        var item=lines[i];
        data_array.push([0,item]); // modify data_array here
    }
    // no need to return it
});
下面是一个非常简化的测试:


另外,请注意for循环中lines.length后面的no-1,除非您的文件以不想读取的空行结尾。

如果我正确理解您的问题,您只需将数据数组声明在请求函数的范围之外。另外,你的循环是不正确的。它应该很棒!您可能会感兴趣的是阅读javascript中的作用域。谷歌上有很多内容-
var data_array = [];
$.get('sample0.txt', function(data){

    var lines=data.split('\n');
    for (var i=0; i<lines.length;i++){
        var item=lines[i];
        data_array.push([0,item]);
    }
}