从数组中生成一个随机单词,然后将其打印到控制台日志中的 javascript 函数中

新手上路,请多包涵

我正在用 javascript 创建 hangman,并且我(我认为)成功地从函数中的数组生成了一个随机词,以检查它是否有效 我正在尝试将生成的词打印到控制台,但它似乎不是在这里工作是我的功能代码

    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);
}

提前致谢 :)

原文由 Owen Brain 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 252
2 个回答

这是 jsfiddle 上的一个例子

var words = ["monitor", "program", "application", "keyboard", "javascript", "gaming", "network"];

var word = words[Math.floor(Math.random() * words.length)];

console.log(word);

document.getElementById("word").textContent = word;

并使其直接适合您当前的代码:

 var getRandomWord = function () {
    return words[Math.floor(Math.random() * words.length)];
};

原文由 Xotic750 发布,翻译遵循 CC BY-SA 3.0 许可协议

尝试以这种方式使用它:

 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;
  };
})();

演示:http: //jsfiddle.net/bCEFA/1/

与其声明一个具有预定义长度的数组,不如声明一个空数组并在其末尾添加值(使用 .push() )。您也可以像这样声明数组:

 var gameWordArray = ["monitor", "program", ...];

您正在尝试打印 word (我将其重命名为 getRandomWord ),这是一个函数。您可能打算使用 console.log(gameWordArray[randno]) ,它应该可以工作。

原文由 Ian 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题