javascript - JavaScript 编号不会显示
问题描述
我尝试用 JavaScript 制作一些 BlackJack 游戏,但我在显示当前玩家的分数时遇到了问题。
let blackjackGame = {
'you': {'scoreSpan': "#your-blackjack-result", 'div': '#your-box', 'score': 0},
'dealer': {'scoreSpan': "#dealer-blackjack-result", 'div': '#dealer-box', 'score': 0},
'cards': ['2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K', 'A'],
'cardsMap': {'2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9, '10': 10, 'J': 10, 'Q': 10, 'K': 10, 'A': [1, 11]}
};
function updateScore(card, activePlayer) {
activePlayer['score'] += blackjackGame['cardsMap']['card'];
}
function showScore(activePlayer) {
document.querySelector(activePlayer['scoreSpan']).textContent = activePlayer['score'];
}
HTML
<div class="flex-box-blackjack-board">
<div id="your-box">
<H2>You: <span id="your-blackjack-result">0</span></H2>
</div>
<div id="dealer-box">
<H2>Dealer: <span id="dealer-blackjack-result">0</span></H2>
</div>
</div>
当我单击按钮打卡时,分数显示 NAN 但如果我更改此行:
function updateScore(card, activePlayer) {
activePlayer['score'] += blackjackGame['cardsMap']['card'];
}
这样:
function updateScore(card, activePlayer) {
activePlayer['score'] += blackjackGame['cardsMap']['k'];
}
分数显示 10 并且正常递增为什么我不能随机选择一张卡片并且分数显示好分数而不是 NaN?我没有看到任何错误。
谢谢你的帮助
解决方案
您的函数似乎有错误:
function updateScore(card, activePlayer) {
activePlayer['score'] += blackjackGame['cardsMap']['card'];
// above blackjackGame['cardsMap']['card'] returns undefined,
// that's why you get NaN when you do a sum with number
}
你的意思不是像下面这样吗?
function updateScore(card, activePlayer) {
activePlayer['score'] += blackjackGame['cardsMap'][card];
// in this form we refer to the card argument passed to function
}
推荐阅读
- maven - 是否可以在 pom 文件中指定多个主类?
- javascript - Angular 5等待承诺从for循环返回
- tcp-ip - Mirth 频道 Source TCP Listener 设置
- python - 如何理解 python regex 编译匹配结果:`re.compile(r'a*')`
- excel - 如何在excel中添加Q的总数
- ios - 由于部署目标早于设备版本,着色器性能数据可能不可用
- ios - 如何向安装在 mdm 上的 iOS 应用发送推送通知?
- c# - 如何创建一个没有具有依赖注入的构造函数参数的类
- python - 使用 selenium 和 python 在 Linkedin 上添加连接
- python - Maya python打开另一个属性编辑器实例