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

Angular中如何获取分组后对象内数组的长度?

获取分组对象中数组的长度方法

嘿,我来帮你搞定这个问题!你已经成功把rowData按日期分组到obj对象里了,要获取这些数组的长度其实很简单,分两种常见场景来看:

1. 获取每个日期分组对应的数组长度

如果你想知道每个日期下有多少条数据,可以通过遍历obj的键或键值对来实现:

方式一:直接遍历并打印

// 遍历obj的键值对,输出每个日期的数组长度
Object.entries(obj).forEach(([date, items]) => {
  console.log(`日期 ${date} 对应的条目数:${items.length}`);
});

方式二:将长度存入新对象

如果需要把每个日期的长度保存起来复用,可以创建一个新对象存储:

const groupItemCounts: { [key: string]: number } = {};

Object.keys(obj).forEach(dateKey => {
  groupItemCounts[dateKey] = obj[dateKey].length;
});

// 此时groupItemCounts会是类似这样的结构:{ '2024-05-20': 4, '2024-05-21': 6 }
console.log(groupItemCounts);

2. 获取所有分组数组的总长度

如果需要统计所有分组里的总数据条数,可以用reduce方法累加每个数组的长度:

const totalItemCount = Object.values(obj).reduce((total, items) => {
  return total + items.length;
}, 0);

console.log(`所有分组的总条目数:${totalItemCount}`);

小提示:优化你的分组代码

顺便提一句,你原来的分组逻辑可以用Array.reduce简化,让代码更简洁:

const obj: { [key: string]: any[] } = this.rowData.reduce((acc, item) => {
  if (!item) return acc; // 过滤空item
  const date = format(item.lastpmdate, 'YYYY-MM-DD');
  acc[date] = acc[date] ? [...acc[date], item] : [item];
  return acc;
}, {} as { [key: string]: any[] });

这样写和你原来的逻辑效果一样,但代码更紧凑哦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:57:26