ex08-04-3
実行結果
Array [ [object Object], [object Object], [object Object], [object Object], ]
Array [ [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], ]
Array [ [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], [object Object], ]
Array [ [object Object], [object Object], [object Object], ]
ソース
const カードの束 = [];
for(let マーク of ['ハート', 'クローバー', 'ダイア', 'スペード']) // 全カードを生成
for(let 数字=1; 数字<=13; 数字++)
カードの束.push({ マーク, 数字});
let 選択されたカード = カードの束.filter(カード => カード.数字 === 2);
console.log(選択されたカード); // 2のカードのみ。次の4枚
/* [ { 'マーク': 'ハート', '数字': 2 },
{ 'マーク': 'クローバー', '数字': 2 },
{ 'マーク': 'ダイア', '数字': 2 },
{ 'マーク': 'スペード', '数字': 2 } ] */
選択されたカード = カードの束.filter(カード => カード.マーク === 'ダイア');
console.log(選択されたカード); // ダイアのカードのみ 13枚(以下詳細は省略)
選択されたカード = カードの束.filter(カード => カード.数字 > 10);
console.log(選択されたカード); // 絵札のみ(3×4=12枚)
選択されたカード
= カードの束.filter(カード => カード.数字 > 10 && カード.マーク === 'ハート');
console.log(選択されたカード); // ハートの絵札のみ3枚