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

如何统计对象数组中每个唯一属性值的出现次数

统计数组对象中state出现次数的实现方法

可以直接用Array.reduce方法实现,代码如下:

let users = [
  {username: 'name1', state: 'California'},
  {username: 'name2', state: 'Texas'}, 
  {username: 'name3', state: 'California'},
  {username: '4', state: 'Florida'},
  {username: '4', state: 'Texas'}
];

// 统计每个state的用户数量
const stateCount = users.reduce((accumulator, currentItem) => {
  const currentState = currentItem.state;
  accumulator[currentState] = (accumulator[currentState] || 0) + 1;
  return accumulator;
}, {});

console.log(stateCount);

运行后输出的统计结果:

{
  California: 2,
  Texas: 2,
  Florida: 1
}

如果你需要数组格式的统计结果方便后续遍历,可以追加转换逻辑:

const stateCountList = Object.entries(stateCount).map(([state, count]) => ({
  state,
  userCount: count
}));

转换后的结果:

[
  { state: 'California', userCount: 2 },
  { state: 'Texas', userCount: 2 },
  { state: 'Florida', userCount: 1 }
]

逻辑说明

  • reduce方法的第一个参数是迭代回调函数,第二个参数{}是统计结果的初始空对象
  • 每次迭代拿到当前项的state值,若统计对象中已有该state的计数就加1,没有就默认从0开始计数加1
  • 迭代完成后得到的就是所有state对应的用户总数

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.18 19:15:07