我正在研究一个简单的程序,它将从数组中选择一个随机字符串。导致未定义的JavaScript split()方法
我从一个预定义的数组开始,但大约一半的时间都在想知道使用text file (.txt)
会不会更简单(或更优雅),因为我有1000多个项目。
我发现这个解决方案在这里(我将不采取任何信贷),它为我工作...
function readTextFile(file) {
var items = [];
var rawFile = new XMLHttpRequest();
rawFile.open("GET", file, true);
rawFile.onreadystatechange = function() {
if(rawFile.readyState === 4)
{
if(rawFile.status === 200 || rawFile.status === 0)
{
var items = rawFile.responseText.split('\n');
alert(items[0]);
}
}
};
rawFile.send(null);
}
readTextFile('source.txt');
...的程度。
我希望array items[]
每个项目包含一行。换句话说,我想分割每一条新线。但是,当我使用split('\n')
时,所有数组项目在items[0]
之后都是undefiend。
items[0]
在上面的例子中成为第一句话,所以很正确。如果我想alert items[1]
我得到undefined。
如果我使用其他分割点(例如split('')
),它可以正常工作,每个项目只分隔每个字符,直到换行为止,之后再次取消定义。
比方说,.txt is "asd"
的第一行: 如此“ASD”在数组定义为:
items[0] = 'a'
items[1] = 's'
items[2] = 'd'
items[3] = undefined
这是我会得到。我错在哪里?
谢谢!
编辑:
文本文件
asfe
asdasdasd
asdasd
fgfg
我会用数组,算上有多少项目,然后选择该数量之间的随机数字并用它来调用该数组项目。 – pathfinder
哦,随机选择尚未实现,但不认为我会有问题(还)。现在我只想保证我所有的数组项目都是正确的。谢谢你! – Tiago
如何保存该文件?什么是你的文本编辑器?我怀疑这个换行符不是真的'\ n'。 –