javascript - 对象的字符串表示 - 牌组

标签 javascript card deck.js

我希望构建一个包含两个字符串变量的函数,并将组合返回到一副牌中的每张牌。

    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

关于javascript - 对象的字符串表示 - 牌组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64313803/

相关文章:

javascript - Node js,函数不等待响应

java - 浏览器如何与 Flash Player 或 Java Applet 交互?

javascript - 如何在同一个元素上使用多个 React 组件?

css - 带有 Link Next Js 的卡片中的嵌套链接和按钮

flutter - 我想在我的flutter应用程序中通过onPressed方法生成卡。谁能给我看一个路线图…?

html - 有没有办法使用 Materialise CSS 将卡片放在容器中居中?

javascript - 单击时如何使 deck.js 演示继续

javascript - 如何将 2 个谷歌图表放在一页上

css - deck.js 中嵌套幻灯片的轮播