首页 > 解决方案 > Javascript - 如果小于 17,则添加额外的卡片/点数

问题描述

我正在尝试添加一个 if 语句,如果它小于 17,它将向dealerHand 添加另一张牌。

目前,它只是记录:

7
19
[ { suit: '♦', value: 9, points: 9 },
{ suit: '♠', value: 'K', points: 10 },
{ suit: '♥', value: 5, points: 5 } ]

无论如何,它都在添加第三个对象,并且积分没有被添加到总数中(19)。

let playerPoints = 0,
    dealerPoints = 0;

for (let { points } of playerHand) {
    playerPoints += points;
}

for (let { points } of dealerHand) {
    dealerPoints += points
}
    // console.log(playerPoints);
    console.log(dealerPoints);


let = totalPoints;

if (dealerPoints < 17) {

 dealerHand.push(dealRandomCard());
 totalPoints += points
} else {
 return
}
  console.log(dealerHand);

现在,我们已经解决了 if 语句,仅当 2 张卡的总价值小于 17 时才添加一张卡,但我需要将第三张卡的积分添加到前两张卡的积分中。

9
[ { suit: '♦', value: 3, points: 3 },
{ suit: '♥', value: 6, points: 6 },
{ suit: '♠', value: 'A', points: 11 } ]

前两张牌加起来是 9,第三张牌应该是 20。

编辑

let totalPoints;

if (dealerPoints < 17) {
  dealerHand.push(dealRandomCard());
  totalPoints += points
} else {
  return
}

let totalDealerHand = 0;

for (let card of dealerHand) {
 totalDealerHand += card.points;
}
 totalDealerHand = dealerHand.reduce(( total , amount ) => total + 
 amount);
 // console.log(playerHand);
 console.log(totalDealerHand);

标签: javascript

解决方案


if (dealerPoints += points < 17)

您不能像这样使用+=运算符。我想你想测试的是

if (dealerPoints < 17)

推荐阅读