我写了一个简单的代码来选择四个随机名称,使用" random_word();"功能,它不起作用。它说:" undefined"。任何人都可以解释我为什么并帮助解决它?感谢您的帮助。
.fadeOut()
答案 0 :(得分:3)
使用randomWord
语句将var
设置为函数的私有变量。如果没有,您可以使用全局变量作为结果。
function random_word() {
randomWord = word[Math.floor(Math.random() * word.length)];
}
var randomWord;
word = ["Michael", "Simon", "Peter", "Mark"];
random_word();
document.write(randomWord);
更好的风格和更简洁的是所选项目的返回。一个更好的版本,如果您也将数组用作参数,因为您也可以将该函数用于其他数组。
function getRandomItem(array) {
return array[Math.floor(Math.random() * array.length)];
}
var words = ["Michael", "Simon", "Peter", "Mark"];
document.write(getRandomItem(words));
奖金,添加间隔随机名称。
function getRandomItem(array) {
return array[Math.floor(Math.random() * array.length)];
}
var words = ["Michael", "Simon", "Peter", "Mark"];
setInterval(function () {
document.getElementById('names').innerHTML += getRandomItem(words) + '<br>';
}, 2000);
<div id="names"></div>
答案 1 :(得分:3)
randomWord
函数上下文中的局部变量random_word
与外部上下文中声明的randomWord
无关。如果要重置外部上下文randomWord
变量的值,则应在函数中删除var
关键字。
function random_word(){
randomWord = word[Math.floor(Math.random()*word.length)]
}
但这不是一种好的编程方式。理想情况下,函数应返回一个值。
function random_word(){
return word[Math.floor(Math.random()*word.length)];
}
var randomWord = random_word();
var anotherRandomWord = random_word();
答案 2 :(得分:0)
您在函数中使用var关键字创建局部变量。当您退出该功能时,不会设置全局功能。
请改用:
function random_word(){
randomWord = word[Math.floor(Math.random()*word.length)]
}