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

点击事件中设置数组对象isAttacker布尔属性并获取攻击值的实现

实现点击攻击按钮的随机攻击者选择与攻击数值展示功能

没问题,我来帮你搞定这个需求。咱们先理清楚核心逻辑,再给出具体的代码实现:

首先明确数据结构示例

先确认你的chosenChar数组结构大概是这样的(如果有差异可以按需调整):

// 你的 chosenChar 数组初始状态
const chosenChar = [
  {
    isAttacker: false,
    attacks: [12, 18, 24] // 每个角色的攻击数值集合
  },
  {
    isAttacker: false,
    attacks: [15, 21, 27]
  }
];

完整的点击事件实现代码

下面是绑定到“attack”按钮的处理函数,包含所有需求逻辑:

// 获取页面上的攻击按钮和用于显示数值的元素
const attackButton = document.getElementById('attackButton');
const attackValueElement = document.getElementById('attackValueDisplay');

// 点击攻击按钮触发的函数
attackButton.addEventListener('click', function() {
  // 1. 随机选中数组中的一个角色对象
  const randomCharIndex = Math.floor(Math.random() * chosenChar.length);
  const selectedAttacker = chosenChar[randomCharIndex];

  // 2. 重置所有角色的isAttacker状态(确保每次只有一个攻击者)
  chosenChar.forEach(char => {
    char.isAttacker = false;
  });
  // 将选中的角色标记为攻击者
  selectedAttacker.isAttacker = true;

  // 3. 从攻击者的攻击数组中随机获取一项数值
  const randomAttackIndex = Math.floor(Math.random() * selectedAttacker.attacks.length);
  const attackValue = selectedAttacker.attacks[randomAttackIndex];

  // 4. 将攻击数值显示到屏幕上
  attackValueElement.textContent = `本次攻击数值:${attackValue}`;
  // 可选:如果你需要显示是哪个角色发起的攻击,可以改成下面这样
  // attackValueElement.textContent = `角色${randomCharIndex + 1}发起攻击,数值:${attackValue}`;
});

关键细节说明

  • 重置所有isAttacker:这一步很重要,避免之前被选中的角色仍保持true状态,确保每次点击只有一个攻击者。
  • 攻击数值的获取方式:上面代码是随机取攻击数组中的一项,如果你需要按顺序依次获取(比如先取第一个,再第二个,循环往复),可以用下面的修改版:
// 新增变量记录当前攻击项的索引,初始为0
let currentAttackIndex = 0;

attackButton.addEventListener('click', function() {
  // ... 前面的随机选角色、重置状态步骤不变 ...

  // 按顺序获取攻击数值
  const attackValue = selectedAttacker.attacks[currentAttackIndex];
  // 更新索引,超出数组长度时重置为0,实现循环
  currentAttackIndex = (currentAttackIndex + 1) % selectedAttacker.attacks.length;

  // ... 显示数值步骤不变 ...
});

内容的提问来源于stack exchange,提问作者J.G.Sable

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 06:42:56