代码中的Javascript语法问题

时间:2015-07-19 03:49:06

标签: javascript

有人能告诉我为什么这些JavaScript有问题吗? 我也有HTML,但我不想让它成为一个巨大的代码转储。

<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>

我会假设这在某个地方是一个愚蠢的语法错误,但我找不到它。

2 个答案:

答案 0 :(得分:3)

我猜这不符合你的期望:

playerCards += newCard;
playerCards += newCard2;

请改为尝试:

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

第一个片段试图向数组“添加”一个数字,这并不完全有意义。通过一些神秘的JavaScript规则,这会将结果转换为字符串。

我猜你想要连接到一个数组。

答案 1 :(得分:2)

Math.random返回0到1之间的数字 - 因此Math.random()%12可能为零

window.initChart = initChart;

你甚至想在那里做什么?

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

如果playerCards有一个长度,这个循环将导致计数器的值为0,1,3,6,10 ...... n(n + 1)/ 2 - 可能不是你想要的,但谁知道