2015-07-19 84 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