首页 > 解决方案 > 对象的字符串表示 - 套牌

问题描述

我正在寻找一个包含两个字符串变量的函数,并将组合返回到一副牌的每张牌。

    playCard({ suit: 'HEARTS', value: 2 }) to return 2♥
    playCard({ suit: 'SPADES', value: 10 }) to return T♠
    playCard({ suit: 'SPADES', value: 11 }) to return J♠

标签: javascriptcarddeck.js

解决方案


您可以使用 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


推荐阅读