ex08-04-4

ソース

function 記号表現に変換する(カード) {
  const マーク名_絵文字
	  = { 'ハート': '♡', 'クローバー': '♧', 'ダイア': '♢', 'スペード': '♤' };
  const 数字からAJQK = { 1: 'A', 11: 'J', 12: 'Q', 13: 'K' };
  for(let i=2; i<=10; i++) 数字からAJQK[i] = i;
  return マーク名_絵文字[カード.マーク]+数字からAJQK[カード.数字];
}


const カードの束 = [];
for(let マーク of ['ハート', 'クローバー', 'ダイア', 'スペード']) // 全カードを生成
   for(let 数字=1; 数字<=13; 数字++)
      カードの束.push({ マーク, 数字});

let 選択されたカード_記号表現
      = カードの束.filter(カード => カード.数字 === 2).map(記号表現に変換する);
console.log(選択されたカード_記号表現); // [ '♡2', '♧2', '♢2', '♤2' ]


選択されたカード_記号表現
  = カードの束.filter(カード => カード.マーク === 'ダイア').map(記号表現に変換する);
console.log(選択されたカード_記号表現);
// [ '♢A', '♢2', '♢3', '♢4', '♢5', '♢6', '♢7', '♢8',
//   '♢9', '♢10', '♢J', '♢Q',  '♢K' ]

選択されたカード_記号表現
  = カードの束.filter(カード => カード.数字 > 10).map(記号表現に変換する);
console.log(選択されたカード_記号表現);
// [ '♡J', '♡Q', '♡K', '♧J', '♧Q', '♧K', '♢J', '♢Q',
//   '♢K', '♤J', '♤Q', '♤K' ]

選択されたカード_記号表現
  = カードの束.filter(カード => カード.数字 > 10 && カード.マーク === 'ハート')
        .map(記号表現に変換する);
console.log(選択されたカード_記号表現); // [ '♡J', '♡Q', '♡K' ]