2015-04-02 54 views
0

當我遇到問題時,我試圖製作一個小型JavaScript遊戲: 我無法設置數組中前一個段的值。
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]屬性「民」增加就好了,但什麼也沒有發生的grid[a-1]屬性「NUM」。

爲什麼會發生這種情況,我該如何解決這個問題?

+0

我回答了你的問題,並得到了一個downvote,因爲有人認爲我誤解了你想要計算的東西。我是否正確推斷了你的意圖?請嘗試我的代碼,看看它是否符合你的期望。 – 2015-04-06 02:47:09

回答

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; 
    } 
} 
+0

也應該檢查是否存在網格[a | a-1 | a + 1](例如'if(grid [a + 1] && grid [a-1] && grid [a])')。 – 2015-04-02 12:02:42