我有一個多行的變量,要選擇一個隨機行:的JavaScript:數組未定義
$.get('namelist.txt', function(nameList) {
name = nameList.split('\n');
var i = random();
alert(name[i]); // this is undefined
});
的random()
函數返回一個隨機數:
function random() {
return Math.floor(Math.random()*201);
}
的問題是,警報說undefined
。如果我用var i = 5
替換第3行,它可以工作。我測試了i
和typeof
,他們在兩種情況下都是數字。有想法該怎麼解決這個嗎?
也許'name'有少於200個元素? – Emmerman 2011-04-07 11:37:18
數組中有200個項目嗎? – 2011-04-07 11:38:53
你真的**想要在你的函數中將'var'放在'name'前面。如果沒有它,除非在引用的代碼的範圍內定義了'name',否則您將覆蓋'window.name'屬性(這幾乎肯定不是您想要的)。一般來說,一定要聲明你的變量,以免受到[*隱式全局的恐怖*](http://blog.niftysnippets.org/2008/03/horror-of-implicit-globals.html) 。 – 2011-04-07 11:46:17