【发布时间】:2011-04-07 11:34:14
【问题描述】:
我有一个多行变量,想随机选择一行:
$.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。如果我将第 3 行替换为 var i = 5,它会起作用。我用typeof 测试了i,它们在这两种情况下都是数字。有关如何解决此问题的任何想法?
【问题讨论】:
-
也许
name的元素少于 200 个? -
数组中是否有 200 项?
-
你真的想在你的函数中把
var放在name前面。没有它,除非您在包含您引用的代码的范围内定义了name,否则您将覆盖window.name属性(这几乎肯定不是您想要的)。一般来说,请务必声明您的变量,以免成为The Horror of Implicit Globals 的牺牲品。
标签: javascript jquery arrays