如何在JavaScript函数中生成新的随机数组索引
解决每次调用runGame生成新随机硬币结果的问题
嘿,我懂你遇到的问题啦!目前你的random变量是在runGame函数外面定义的,这意味着页面加载完成后它就只生成一次随机值,之后不管调用多少次runGame,都会用同一个结果,自然没法实现每次游戏都换新的硬币正反面。
最简单的解决方案:把随机值生成逻辑移到函数内部
只需要把生成随机索引的代码放到runGame函数里面,这样每次调用这个函数时,都会重新计算新的随机值。修改后的代码如下:
var coin = ["heads", "tails"]; function runGame() { // 每次调用函数时,重新生成随机硬币结果 var random = coin[Math.floor(Math.random() * coin.length)]; var input = document.getElementById('choose').value; if (input === random) { youWin(); } else { youLose(); } createReset(); console.log(random); }
为什么这样有效?
当你把random的定义移到runGame内部后,它就变成了函数作用域变量。每次调用runGame时,这个变量都会被重新声明并赋值新的随机值,完美解决了“每次游戏用同一个结果”的问题。
如果之后你需要在其他函数里也用到这个随机值,可以考虑把它作为函数的返回值,或者用一个全局变量存储,但对于当前的猜硬币场景,直接放在runGame内部是最简洁且符合逻辑的做法。
内容的提问来源于stack exchange,提问作者user9440272
相关产品推荐
相关产品推荐

