2015-07-19 92 views
-2

有人能告訴我爲什麼這一點JavaScript是越野車嗎? 我也有HTML,但我不想讓這是一個巨大的代碼轉儲。代碼中的Javascript語法問題

<script type = 'text/javascript'> 
var playerCards = []; 
var dealerCards = []; 

function deal() { 
    var newCard = Math.random() % 12; 
    var newCard2 = Math.random() % 12; 
    playerCards += newCard; 
    playerCards += newCard2; 

    var counter = 0; 
    for (var i = 0; i < playerCards.length; ++i) { 

     counter += i; 
    } 
    document.getElementById("playerTotal").innerHTML = counter; 

    var dCounter = 0; 
    for (var j = 0; j < playerCards.length; ++j) { 

     dCounter += j; 
    } 
    document.getElementById("dealerTotal").innerHTML = dCounter; 

} 
</script> 

我會認爲這是一個愚蠢的語法錯誤someplace,但我找不到它。

+0

你看到什麼問題? –

+0

有什麼問題? –

+0

我不相信+ =將元素添加到數組中,除非這是我不知道的功能。嘗試playerCards.push(新卡)。可能是其他的事情,因爲你沒有解釋什麼是錯的。 – dman2306

回答

2

的Math.random返回0和1之間的數字 - 這樣的Math.random()%12將可能是零

var playerCards = []; 
playerCards += newCard; // 

什麼,你甚至試圖做的呢?

var counter = 0; 
for (var i = 0; i < playerCards.length; ++i) { 

    counter += i; 
} 

如果playerCards有一個長度,這個循環將導致具有值爲0,1,3,6,10計數器... N(N + 1)/ 2 - 可能不是你所預期的,但誰知道

3

我猜測,這是不是你做指望它什麼:

playerCards += newCard; 
playerCards += newCard2; 

試試這個:

playerCards.push(newCard); 
playerCards.push(newCard2); 

的第一個片段是試圖「添加」一個數一個數組,這不完全有意義。通過一些神祕的JavaScript規則,這將結果轉換爲一個字符串。我想你想連接到一個數組,而不是。

+0

啊謝謝!!! – user3250420