2012-12-26 87 views
1

我要計數的A隊連續3勝的數量和B.它似乎總是給我最後的IFS。不是當consecutivas等於3,6,9 ......%運營商似乎沒有在谷歌工作的Apps腳本

var consecutivasA = 0; 
    var consecutivasB = 0; 
    var plusA = 0; 
    var plusB = 0; 

    for (var i = 2; i <= 30; i++) { 
    var row = values[i]; 

     if (row[3] > row[4]) { 
     consecutivasA++; 
     consecutivasB = 0; 
     } 
     else if (row[3] < row[4]) { 
     consecutivasB++; 
     consecutivasA = 0; 
     } 
     else { 
     consecutivasA = 0; 
     consecutivasB = 0; 
     } 

     if (consecutivasB % 3 == 0) { plusB++; } 
     if (consecutivasA % 3 == 0) { plusA++; } 

回答

1

你這樣做,你也增加時consecutivas是0,因爲0%3也是0。這個例子中,這樣寫道:示例數據到日誌的結果。

function consecutivasMod() { 
    var consecutivasA = 0; 
    var consecutivasB = 0; 
    var plusA = 0; 
    var plusB = 0; 
    values=[ 
    [0,0,0,1,0], [0,0,0,1,0], [0,0,0,1,0], [0,0,0,0,1], [0,0,0,0,1], 
    [0,0,0,0,1], [0,0,0,0,0], [0,0,0,0,0], [0,0,0,0,0], [0,0,0,0,2], 
    [0,0,0,0,3], [0,0,0,0,4], [0,0,0,0,5], [0,0,0,0,6], [0,0,0,0,7], 
    ] 
    for (var i = 0; i < 15; i++) { 
    var row = values[i]; 

    if (row[3] > row[4]) { 
     consecutivasA++; 
     consecutivasB = 0; 
    } 
    else if (row[3] < row[4]) { 
     consecutivasB++; 
     consecutivasA = 0; 
    } 
    else { 
     consecutivasA = 0; 
     consecutivasB = 0; 
    } 

    if (consecutivasB>0&&(consecutivasB % 3) == 0) { plusB++; } 
    if (consecutivasA>0&&(consecutivasA % 3) == 0) { plusA++; } 
    } 
Logger.log ("consecutivasA "+plusA); 
Logger.log ("consecutivasB "+plusB); 
} 
+0

就是這樣,謝謝:) – Pepe

1

最終IFS前右登錄consecutivasA和B的值......我強烈懷疑,你的價值觀始終爲零,由於先前的邏輯錯誤。

1

我會去這樣做的另一種方式 - 而不是使用你提供我認爲只是檢查是否由A隊或B隊獲勝的總數是被3整除(這並不一定說什麼邏輯,關於是否連勝),我會嘗試以下內容:

運行你的數組並寫一個if語句來檢查團隊A是否贏得了某個特定的地方。如果是,請檢查它是否在n + 1和n + 2中獲勝。如果是這樣,增加plusA。通過您的陣列

再次運行,寫一個if語句檢查,如果B隊在一個特定的地方獲勝。如果是,檢查它是否在N + 1和N + 2贏得了爲好。如果是這樣,增加加B。

注意:只檢查直到數組中的最後一項之前的兩個條目,因爲超出這將返回一個數組大小錯誤。

+0

謝謝,我認爲這樣做的同時,但你說一下我的方法是不正確的,通過把consecutivasA和B爲0,當他們失去或領帶,我發現了目標。 – Pepe