从javascript中的文件加载2d数组

从javascript中的文件加载2d数组,javascript,arrays,Javascript,Arrays,我在javascript中有一个数组,如下所示: var linePoints = [[0, 3], [4, 8], [8, 5], [12, 13]]; 但是我想从文本文件加载它,而不是在代码中定义它。文件: input.txt: 0 3 4 8 8 5 12 13 我注意到了这篇文章,它谈到了一些类似的东西,但它是针对一维数组的。我想知道是否有一个特殊的函数可以为2D实现这一点。在java中,我会阅读每一行,然后将其拆分。但公平地说,我是javascript新手 没有内置的通用函数来按您

我在javascript中有一个数组,如下所示:

var linePoints = [[0, 3], [4, 8], [8, 5], [12, 13]];
但是我想从文本文件加载它,而不是在代码中定义它。文件:

input.txt:

0 3
4 8
8 5
12 13

我注意到了这篇文章,它谈到了一些类似的东西,但它是针对一维数组的。我想知道是否有一个特殊的函数可以为2D实现这一点。在java中,我会阅读每一行,然后将其拆分。但公平地说,我是javascript新手

没有内置的通用函数来按您想要的方式解析输入。但是,您可以利用
String.split()
函数,该函数将根据您传递的轮廓线将字符串拆分为任意数量的较小字符串:

var foo = "0 3";
var bar = foo.split(" "); // split based on single space character
console.log(bar); // ["0", "3"]

没有内置的通用函数可以按您想要的方式解析输入。但是,您可以利用
String.split()
函数,该函数将根据您传递的轮廓线将字符串拆分为任意数量的较小字符串:

var foo = "0 3";
var bar = foo.split(" "); // split based on single space character
console.log(bar); // ["0", "3"]

这应该满足您的需求:

$.get("textFile.txt", function(data) {
      var items = data.split("\r\n").map(function(el){ return el.split(" ");});
  });

下面是一个工作示例:

这应该满足您的要求:

$.get("textFile.txt", function(data) {
      var items = data.split("\r\n").map(function(el){ return el.split(" ");});
  });

这里有一个工作示例:

您需要注意不同的换行符样式,并且您可能希望数组具有数字,而不是字符串

因此,我提出这项守则:

$.get("textFile.txt", function(data) {
    var items = data.split(/\r?\n/).map( pair => pair.split(/\s+/).map(Number) );
});

您需要注意不同的换行符样式,并且您可能希望数组具有数字,而不是字符串

因此,我提出这项守则:

$.get("textFile.txt", function(data) {
    var items = data.split(/\r?\n/).map( pair => pair.split(/\s+/).map(Number) );
});


你在使用node.js吗?据我所知,我在jquery.flot中使用它。你能控制输入文件的格式吗?是的,我可以很容易地更改它,例如,每一行都是[0,3]。我想在这种情况下,如果我在数据文件前面加上var linePoints=[…等等,我可以这样加载它。稍微不那么漂亮,因为我有不同的数据文件,但它可以工作。你使用node.js吗?据我所知,我在jquery.flot中使用它。你可以控制输入文件的格式吗?是的,我可以很容易地更改它,使每一行都是[0,3]例如,我想在这种情况下,如果我在数据文件前面加上var linePoints=[…等,我就可以这样加载它。虽然我有不同的数据文件,但它可以工作。是的,还有一个问题。我如何制作“项目”在javascript中此函数之外可用?它似乎仅在jquery函数中可用。很抱歉,我是jquery新手。是否有一种简单的方法“返回”此变量?我尝试了以下方法来调整代码以将数据作为变量返回。函数showGetResult(name,callback){data=$.get(name,callback);items=data.split(/\r?\n/).map(pair=>pair.split(/\s+/).map(Number));返回项;}var items=showGetResult(“./moonlight_sonata_diameter.data”),函数(data){);好的,我们正在处理的是异步代码,你可以用几种方法处理异步代码,最常见的是回调和承诺,还有其他方法,但它们在所有浏览器中都不起作用。你所做的几乎是正确的,但基本上没有办法让你的各种项目以这种方式包含结果。你可以做什么来替代d是在回调中编写逻辑,我将在下一个小时起草一个示例。我认为依赖项是错误的,jquery需要在jquery flot之前加载,我在这里分叉:是的,还有一个问题。我如何生成“项”在javascript中此函数之外可用?它似乎仅在jquery函数中可用。很抱歉,我是jquery新手。是否有一种简单的方法“返回”此变量?我尝试了以下方法来调整代码以将数据作为变量返回。函数showGetResult(name,callback){data=$.get(name,callback);items=data.split(/\r?\n/).map(pair=>pair.split(/\s+/).map(Number));返回项;}var items=showGetResult(“./moonlight_sonata_diameter.data”),函数(data){);好的,我们正在处理的是异步代码,你可以用几种方法处理异步代码,最常见的是回调和承诺,还有其他方法,但它们在所有浏览器中都不起作用。你所做的几乎是正确的,但基本上没有办法让你的各种项目以这种方式包含结果。你可以做什么来替代d是在回调中编写逻辑,我将在下一个小时起草一个示例。我认为依赖项是错误的,jquery需要在jquery flot之前加载,我在这里分叉:换行符呢?我可以异步使用吗?换行符呢?我可以异步使用吗?