基本上我正在创建一个类似于二十一点程序的程序,其中两张牌是根据随机数发生器发出的,同一张牌可能同时发出两次(即两张女王出现在一次)我想创建一个计数器,说明事件发生了多少次,但是当我实现一个if语句时,它会影响结果,这样两张卡总是完全一样...有人可以告诉我我是什么在这做错了?代码如下:
function dealHand() {
var randomCardOne = Math.floor ((Math.random() *13) +2);
var randomCardTwo = Math.floor ((Math.random() *13) +2);
if (randomCardOne = randomCardTwo) {identicalCards()};
}
var identicalPairs = 0;
function identicalCards(){
document.getElementById("identical").value=++identicalPairs;
}
答案 0 :(得分:2)
您正在将一张卡的值分配给另一张
if (randomCardOne = randomCardTwo) {identicalCards()};
应该是
if (randomCardOne == randomCardTwo) {identicalCards()};
在第一种情况下,您只是在评估randomCardTwo的值后,评估randomCardOne是否为“truthy”。
考虑您是否希望使用===
代替==
,因为
2 == '2' // yields true
2 === '2' // yields false
在这种情况下,这不是一个问题,但它可能在其他情况下,所以很高兴意识到这一点。我试着坚持使用===
,因为它更严格。
答案 1 :(得分:1)
你正在使用=,这是JavaScript中的赋值运算符。你应该使用==
e.g。
if (randomCardOne == randomCardTwo) {identicalCards()};