我在javascript中有如下数组:
var linePoints = [[0, 3], [4, 8], [8, 5], [12, 13]];
但是我想从文本文件中加载它而不是在代码中定义它。文件:
input.txt:
0 3
4 8
8 5
12 13
我注意到this other帖子,它讲的是类似的东西,但对于一维数组。我想知道2D是否有特殊功能。在java中,我会读取每一行,然后将其拆分。但公平地说,我是javascript的新手。
答案 0 :(得分:4)
这应该做你正在寻找的事情:
$.get("textFile.txt", function(data) {
var items = data.split("\r\n").map(function(el){ return el.split(" ");});
});
这是一个工作示例:http://plnkr.co/edit/htsf9yBuygAhv7vznS2g?p=preview
答案 1 :(得分:1)
你需要注意不同的换行样式,你可能希望数组有数字,而不是字符串。
所以我建议这段代码:
$.get("textFile.txt", function(data) {
var items = data.split(/\r?\n/).map( pair => pair.split(/\s+/).map(Number) );
});
答案 2 :(得分:0)
没有内置的通用函数可以按照您想要的方式解析输入。但是,您可以利用String.split()
函数,该函数会根据您传递的描述符将字符串分解为任意数量的较小字符串:
var foo = "0 3";
var bar = foo.split(" "); // split based on single space character
console.log(bar); // ["0", "3"]