javascript - 对象的字符串表示 - 套牌
问题描述
我正在寻找一个包含两个字符串变量的函数,并将组合返回到一副牌的每张牌。
playCard({ suit: 'HEARTS', value: 2 }) to return 2♥
playCard({ suit: 'SPADES', value: 10 }) to return T♠
playCard({ suit: 'SPADES', value: 11 }) to return J♠
解决方案
您可以使用 2 个简单的查找表或关联数组来做到这一点
const suitsMap = {
'HEARTS' : '♥',
'SPADES' : '♠'
// etc
}
const valuesMap = {
2 : '2',
10: 'T',
11: 'J'
// etc
}
function playCard({value,suit}){
return valuesMap[value] + suitsMap[suit];
}
console.log(playCard({ suit: 'HEARTS', value: 2 }))
console.log(playCard({ suit: 'SPADES', value: 10 }))
console.log(playCard({ suit: 'SPADES', value: 11 }))
playCard
也可以这样写:
function playCard(card){
return valuesMap[card.value] + suitsMap[card.suit];
}
在我上面的示例中,它只是使用了对象解构分配:https ://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment
推荐阅读
- php - Laravel 关系的序列化关系数组
- javascript - 使用 javascript/google 脚本在 HTML 中显示选中的复选框值
- java - 在正在运行的辅助线程中执行方法。爪哇
- java - “mapToInt(Integer::intValue)”和“mapToInt(Integer -> Integer.intValue())”有什么区别
- python - 如何在list()中附加数据而不将其分配到python解释器中的变量中
- .net - netstandard2.0 中的 CDbl() 行为似乎是错误的
- firebase - Firebase自定义参数类型文字不见了,现在怎么记录?
- python - 如何在 pandas.DataFrame 中插入 redis 并追加数据?
- botframework - 在 Bot Framework SDK 4 中,视频上传未被确认为附件
- javascript - Handlebars.js 问题背景颜色条纹为 {{#each}}