【问题标题】:JavaScript array value setting error?JavaScript 数组值设置错误?
【发布时间】:2015-04-02 11:23:18
【问题描述】:

当我遇到问题时,我正在尝试制作一个小型 javascript 游戏: 我无法设置数组中先前段的值。

为了更清楚,这里是一个例子:

for (var a = 0; a <= 100; a++) {
    if (grid[a].num == 2) {
        grid[a + 1].num++;
        grid[a - 1].num++;
        grid[a].num = 0;
    }
 }

grid[a+1] 的“num”属性增加得很好,但grid[a-1] 的“num”属性没有任何变化。

为什么会发生这种情况,我该如何解决这个问题?

【问题讨论】:

  • 我回答了您的问题并获得了反对票,因为有人认为我误解了您要计算的内容。我是否正确推断出你的意图?请试用我的代码,看看它是否符合您的预期。

标签: javascript arrays html object


【解决方案1】:

值不会更新,因为grid[a-1]在a为0时返回-ve值,修改代码如下。

for (var a = 0; a <= 100; a++) {
    if (grid[a].num == 2) {
        grid[a + 1].num++;
        if (a > 0) {
            grid[a - 1].num++;
        }
        grid[a].num = 0;
    }
}

【讨论】:

  • 还应该检查 grid[a|a-1|a+1] 是否存在(例如if (grid[a+1] &amp;&amp; grid[a-1] &amp;&amp; grid[a]))。
猜你喜欢
  • 2013-10-17
  • 2018-09-01
  • 2014-10-05
  • 1970-01-01
  • 2019-08-23
  • 1970-01-01
  • 1970-01-01
  • 2011-01-30
相关资源
最近更新 更多