You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何存储随机数结果?多骰子滚轮数组结果重复问题

问题原因与解决方法

你遇到的问题核心是d4只被计算了一次:

  • 你在循环外定义了const d4 = Math.floor((Math.random() * 4) + 1),这行代码只会在程序启动时执行一次,生成一个固定的随机数,之后d4的值就不再变化。
  • 循环里的arrayOfResults.push(d4)只是把这个固定值重复添加10次,所以数组里所有元素都完全相同。

修正方案

把骰子的随机计算逻辑放到循环内部,让每次循环都重新生成新的随机数:

let dieAmount = 10
let arrayOfResults = []

for (let i = 1; i <= dieAmount; i++) {
    // 每次循环都重新计算d4的结果
    const d4 = Math.floor((Math.random() * 4) + 1)
    arrayOfResults.push(d4)
}
console.log(arrayOfResults)

如果需要复用掷骰子的逻辑,也可以封装成函数,代码结构更清晰:

function rollD4() {
    return Math.floor((Math.random() * 4) + 1)
}

let dieAmount = 10
let arrayOfResults = []

for (let i = 1; i <= dieAmount; i++) {
    arrayOfResults.push(rollD4())
}
console.log(arrayOfResults)

这样每次循环都会生成新的随机数,数组里的元素就会是不同的骰子结果了。

内容的提问来源于stack exchange,提问作者ProbablyGametes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 11:19:49