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

如何使用forEach方法实现按年龄分组人员的功能?

用forEach实现按年龄分组

你可以通过初始化一个空对象存储分组结果,再用forEach遍历人员数组完成分组,逻辑和你用reduce写的完全一致:

const people = [
    {name:'Kyle', age:42},
    {name:'Suk', age:34},
    {name:'Lol', age:35},
    {name:'Pol', age:23},
    {name:'Kol', age:23}
];

// 初始化空的分组对象
const groupedPeople = {};

people.forEach(person => {
    const age = person.age;
    // 如果当前年龄对应的分组不存在,创建空数组
    if (!groupedPeople[age]) {
        groupedPeople[age] = [];
    }
    // 将当前人员加入对应年龄的分组数组
    groupedPeople[age].push(person);
});

// 输出分组结果
console.log(groupedPeople);

逻辑说明

这个实现和你用reduce的版本逻辑完全相同:

  • 先获取当前遍历到的人员的年龄
  • 检查分组对象中是否存在该年龄对应的数组,不存在则初始化一个空数组
  • 将当前人员对象推入对应年龄的数组中

区别只在于:reduce是通过回调函数返回累积的分组对象完成操作,而forEach是直接操作外部定义的分组对象,不需要返回值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 23:06:09