You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

编写函数统计卡牌花色数量:以花色为键、数量为值返回对象

统计卡牌花色数量的函数实现

需求说明

给定如下卡牌数据数组:

const cardData = [
  {
      suit: "heart",
      value: 7,
  },
  {
      suit: "club",
      value: 8,
  },
  {
      suit: "club",
      value: 2,
  },
  {
      suit: "diamond",
      value: 2,
  },
  {
      suit: "diamond",
      value: 5,
  },
  {
      suit: "club",
      value: 10,
  },
];

需要编写一个函数,返回一个对象,以花色(suit)作为键,对应花色的卡牌总数量作为值,示例返回结果:{ heart:1, club:3, diamond:2 }


实现方案

可以使用数组的reduce方法高效完成统计,这是处理聚合统计场景的常用方式:

function countCardSuits(cards) {
  return cards.reduce((countObj, card) => {
    // 若当前花色未在统计对象中,初始化为0
    if (!countObj[card.suit]) {
      countObj[card.suit] = 0;
    }
    // 对应花色计数加1
    countObj[card.suit]++;
    return countObj;
  }, {}); // 初始化累加器为空对象
}

// 调用测试
const result = countCardSuits(cardData);
console.log(result); // 输出: { heart: 1, club: 3, diamond: 2 }

逻辑说明

  • reduce遍历卡牌数组,第一个参数为累加器函数,第二个参数是累加器的初始值(空对象)
  • 遍历每张卡牌时,检查当前花色是否已存在于统计对象中,不存在则初始化计数为0
  • 对应花色的计数加1,最终返回完成统计的对象

内容的提问来源于stack exchange,提问作者Saurav Kamble

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 02:05:25