从数组中生成一个随机字,然后将其打印到javascript函数中的控制台日志中
我正在用javascript创建hangman,我已经(我想)成功地从一个函数的数组中生成了一个随机单词,为了检查它是否有效,我正在尝试将生成的单词打印到控制台中,但它似乎不起作用。这是我的函数代码从数组中生成一个随机字,然后将其打印到javascript函数中的控制台日志中,javascript,arrays,function,console,Javascript,Arrays,Function,Console,我正在用javascript创建hangman,我已经(我想)成功地从一个函数的数组中生成了一个随机单词,为了检查它是否有效,我正在尝试将生成的单词打印到控制台中,但它似乎不起作用。这是我的函数代码 var word = function() //Random word is genereated from an array for the user to guess { GameWordArray = new Array(7); GameWordArray[0] = "moni
var word = function() //Random word is genereated from an array for the user to guess
{
GameWordArray = new Array(7);
GameWordArray[0] = "monitor";
GameWordArray[1] = "program";
GameWordArray[2] = "application";
GameWordArray[3] = "keyboard";
GameWordArray[4] = "javascript";
GameWordArray[5] = "gaming";
GameWordArray[6] = "network";
randno = Math.floor(Math.random() * GameWordArray.length);
document.write(GameWordArray[randno]);
console.log(word);
}
提前感谢:)试着这样使用它:
var getRandomWord = (function () {
var gameWordArray = [];
gameWordArray.push("monitor");
gameWordArray.push("program");
gameWordArray.push("application");
gameWordArray.push("keyboard");
gameWordArray.push("javascript");
gameWordArray.push("gaming");
gameWordArray.push("network");
return function () {
var randNum, finalWord;
randNum = Math.floor(Math.random() * gameWordArray.length);
finalWord = gameWordArray[randNum];
return finalWord;
};
})();
演示:
与其声明具有预定义长度的数组,不如声明一个空数组并在其末尾添加值(使用.push()
)。您还可以像这样声明数组:
var gameWordArray = ["monitor", "program", ...];
您试图打印word
(我将其重命名为getRandomWord
),这是一个函数。您可能打算使用console.log(gameWordArray[randno])
,这应该可以使用。下面是一个关于
要使其与您当前的代码直接匹配:
var getRandomWord = function () {
return words[Math.floor(Math.random() * words.length)];
};
谢谢,但是当我把它放在我的原始代码的地方并尝试运行它时,它在代码的其他地方给了我一个语法错误,在这行代码上给了我这个错误;检测到错误:第86行文档处或周围的语法错误(#86)错误。getElementById(“按钮”)。onclick=guessButtonClicked@OwenBrain难道你不认为提供实际错误或语法错误所指的位置会有帮助吗?是的,我试过了,很抱歉,如果它没有正确通过,我是这个网站的新手,谢谢以这种方式创建随机单词有点痛苦,因为每次调用函数时都会创建一个新的单词数组。
var getRandomWord = function () {
return words[Math.floor(Math.random() * words.length)];
};