我正在研究一個簡單的程序,它將從數組中選擇一個隨機字符串。導致未定義的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'。 –