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

如何用JavaScript实现多次随机生成1-3个怪物?现有代码存问题

问题描述

尝试在JavaScript中多次随机生成1-3个怪物,当前代码仅在页面刷新时随机一次怪物数量,后续每次生成的怪物数量始终保持一致。代码如下:

function spawnMonster(){   
  setInterval(function(){
    for(var i = 0; i < randomMonster; i++){
      monsterDiv.innerHTML += monsterPic;
      outputDiv.innerHTML = "monstrene angriper.</br>" + outputDiv.innerHTML;
    }
  }, Math.floor(Math.random()* 3000) + 1000);
}
解决方法

问题根源是randomMonster变量仅在页面刷新时被赋值一次,后续定时器触发时不会重新生成随机数。要实现每次生成的怪物数量都随机,需将随机数生成逻辑放入setInterval的回调函数内部,确保每次定时器执行时都会重新计算怪物数量。

修改后的代码:

function spawnMonster(){   
  setInterval(function(){
    // 每次触发时重新生成1-3之间的随机整数
    const randomMonster = Math.floor(Math.random() * 3) + 1;
    for(var i = 0; i < randomMonster; i++){
      monsterDiv.innerHTML += monsterPic;
      outputDiv.innerHTML = "monstrene angriper.</br>" + outputDiv.innerHTML;
    }
  }, Math.floor(Math.random()* 3000) + 1000);
}
  • 核心改动:把randomMonster的定义移到定时器回调函数内,通过Math.floor(Math.random() * 3) + 1每次生成1到3的随机数,保证每次触发怪物生成时数量都不固定。

内容的提问来源于stack exchange,提问作者Muhammed Muhayudin Awan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 03:35:19