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

Angular 9中基于label分组并统计subLable数量的实现问题

Angular 9 按lable分组并统计subLable计数实现方案

你已经完成了按lable分组的第一步,接下来只需要在每个分组内对subLable的出现次数做统计即可,以下是完整实现代码:

this.smdashboardservice.fetchSmDashboardData().subscribe(response=>{
  // 1. 按lable字段分组
  const groupedByLabel = response.data.reduce((acc, item) => {
    const label = item.lable;
    acc[label] = acc[label] || [];
    acc[label].push(item);
    return acc;
  }, {});

  // 2. 对每个分组统计subLable的出现次数
  const subLabelStats = Object.entries(groupedByLabel).reduce((statsAcc, [label, items]) => {
    // 统计当前分组内各subLable的数量
    const countMap = items.reduce((countAcc, item) => {
      const subLabel = item.subLable;
      countAcc[subLabel] = (countAcc[subLabel] || 0) + 1;
      return countAcc;
    }, {});
    
    statsAcc[label] = countMap;
    return statsAcc;
  }, {});

  // 可选:转换成你期望的字符串格式输出
  const formattedResult = Object.entries(subLabelStats).map(([label, counts]) => {
    const countStr = Object.entries(counts).map(([subLbl, cnt]) => `${subLbl} count ${cnt}`).join(', ');
    return `${label} subLable ${countStr}`;
  }).join('\n');

  console.log('分组数据:', groupedByLabel);
  console.log('统计结果:', subLabelStats);
  console.log('格式化输出:', formattedResult);
});

代码说明

  • 第一步和你原有逻辑一致,将原始数组按lable字段分组,得到键为lable值、值为对应数组的对象。
  • 第二步通过两层reduce:外层遍历所有分组,内层统计当前分组内每个subLable的出现次数,最终生成统计映射。
  • 可选的格式化步骤会将统计结果转换成你需要的字符串格式,输出示例如下:
Application subLable Nice count 2, poor count 1
Channels subLable Quality count 1

内容的提问来源于stack exchange,提问作者Ramesh S

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 23:03:30