【问题标题】:JavaScript help/ issue with loopsJavaScript 帮助/循环问题
【发布时间】:2021-04-19 19:43:18
【问题描述】:

我是新手,但基本上我正在尝试制作一个 JavaScript 循环,其中 2 名战士战斗。我用 2 个战斗机和一个从 HTML 连接到我的 JavaScript 的按钮制作了一个数组。现在我需要制作一个循环,让战士互相撞击,其中 1 名战士的伤害减去另一名战士的生命值,以此类推,稍后我需要在我的 html 中显示战斗是如何进行的。但我不知道从哪里开始我会感谢一些帮助。这就是我所做的,我不知道之后该做什么,或者它是否正确?

var fighters =  [
{
  "name":"Abdi",
  "HP": 100,
  "DMG": 20,
}
{
  "name": "chriz",
  "HP": 100,
  "DMG": 11,
}

]
function myFunction() {
  for (var i = 0; i < fighters.length; i++) {
    fighters[i]
  }
}

【问题讨论】:

  • 为什么需要循环?如果fighters[0] 命中fighters[1],那就是fighters[1].HP -= fighters[0].DMG;
  • 是的,但 viseversa 也是如此,所以他们互相撞了
  • fighters[0].HP -= fighters[1].DMG 为另一个命中。
  • 当元素的数量是动态的或者你需要对数组的每个元素做同样的事情时使用循环。但这里不是这样。
  • function myFunction() { for (var i = 0; i &lt; fighters.length; i++) { fighters[1].HP -= fighters[0].DMG; fighters[0].HP -= fighters[1].DMG; } 这样的东西???

标签: javascript loops for-loop


【解决方案1】:

你做得很好。

几件事--

  • fighters[i] 指的是特定的战斗机。您可能想要更换 这符合一些实际逻辑,例如fighters[i].HP++ 会使他们的生命值增加 1。

  • 您的战士数组没有逗号。你需要一个。

  • 您已经定义了执行您需要的功能,但您还没有调用它。你可能想通过添加像myFunction();这样的行来调用它

另外,不要忘记输出一些东西,否则你永远不会知道发生了什么!很多人为此使用console.log(),例如console.log(fighters[i].HP)

(注意:我特别没有添加您提到的逻辑,因为我认为这是功课;)

【讨论】:

  • 根据DMG 属性,您在哪里谈论一名战士对另一名战士造成伤害?
  • 我个人避免直接回答家庭作业问题,因为这将不利于学生的发展。如果您不同意,请随时投反对票。
  • 没关系,但您的回答甚至没有解决问题中的任何问题。
  • 缺少逗号的部分应该只是注释,很明显是复制错误。
  • 问题说他有“一个按钮从 html 连接到我的 javascript”。这就是函数的调用方式。
【解决方案2】:
function myFunction() {

  while (fighters[0].HP > 0 && fighters[1].HP > 0) {
  fighters[1].HP -= fighters[0].DMG;
  fighters[0].HP -= fighters[1].DMG;
  document.getElementById('Results').innerHTML+= fighters[1].HP ;
  document.getElementById('Results').innerHTML+= fighters[0].HP;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-16
    • 1970-01-01
    • 1970-01-01
    • 2022-12-17
    • 2010-09-26
    • 2010-09-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多