按照不同的键将对象数组分组
创始人
2024-08-23 12:30:21
0次

以下是一个示例代码,演示如何按照不同的键将对象数组分组:

function groupBy(arr, key) {
  return arr.reduce((acc, obj) => {
    const groupKey = obj[key];
    if (!acc[groupKey]) {
      acc[groupKey] = [];
    }
    acc[groupKey].push(obj);
    return acc;
  }, {});
}

// 示例数据
const people = [
  { name: 'John', age: 20, gender: 'male' },
  { name: 'Jane', age: 25, gender: 'female' },
  { name: 'Tom', age: 20, gender: 'male' },
  { name: 'Lisa', age: 25, gender: 'female' },
];

// 按照年龄分组
const groupedByAge = groupBy(people, 'age');
console.log(groupedByAge);

// 按照性别分组
const groupedByGender = groupBy(people, 'gender');
console.log(groupedByGender);

运行以上代码,将会输出以下结果:

{
  20: [
    { name: 'John', age: 20, gender: 'male' },
    { name: 'Tom', age: 20, gender: 'male' }
  ],
  25: [
    { name: 'Jane', age: 25, gender: 'female' },
    { name: 'Lisa', age: 25, gender: 'female' }
  ]
}

{
  male: [
    { name: 'John', age: 20, gender: 'male' },
    { name: 'Tom', age: 20, gender: 'male' }
  ],
  female: [
    { name: 'Jane', age: 25, gender: 'female' },
    { name: 'Lisa', age: 25, gender: 'female' }
  ]
}

以上代码使用了reduce方法来迭代数组,并根据指定的键来将对象分组。首先,我们初始化一个空对象acc作为累加器。然后,对于数组中的每个对象,我们根据指定的键获取分组的键groupKey。如果acc中不存在该分组键,则创建一个空数组,并将该数组作为值与分组键关联起来。接着,我们将当前对象添加到对应的分组数组中。最后,返回累加器acc作为结果。

相关内容

热门资讯

盘点一款透视挂!八喜牌辅助透视... 盘点一款透视挂!八喜牌辅助透视挂,九五确实有外挂,切实有挂助手1、在八喜牌插件功能辅助器技巧中,中转...
玩家交流透视挂!安喜辅助透视挂... 玩家交流透视挂!安喜辅助透视挂,山西扣点点存在有外挂,原来有挂存在1、不需要AI权限,帮助你快速的进...
今年以来透视挂!清风渡辅助透视... 今年以来透视挂!清风渡辅助透视挂,胡乐竞技确实有外挂,其实有挂秘籍1、首先打开清风渡辅助器下载最新版...
今日科普透视挂!广客麻将2辅助... 今日科普透视挂!广客麻将2辅助透视挂,大巴斗地主是有外挂,其实有挂分析1、大巴斗地主有没有辅助教程、...
目前来看开挂!安喜辅助透视挂,... 目前来看开挂!安喜辅助透视挂,纸蛙竞技麻将存在有外挂,其实有挂头条1、上手简单,内置详细流程视频教学...
免费测试版开挂!途游竞技辅助透... 免费测试版开挂!途游竞技辅助透视挂,趣咪麻将真的有外挂,本来有挂分析进入游戏-大厅左侧-新手福利-激...
一分钟带你了解透视挂!闲游福建... 一分钟带你了解透视挂!闲游福建麻将辅助透视挂,乐棋海南麻将是真的有外挂,总是的确有挂闲游福建麻将是不...
重大通报辅助!经典联盟辅助透视... 重大通报辅助!经典联盟辅助透视挂,皮皮湖南跑胡子是真的有外挂,总是有挂方法1、皮皮湖南跑胡子辅助软件...
推荐一款开挂!新冰河辅助透视挂... 推荐一款开挂!新冰河辅助透视挂,微乐四川麻将真的是有外挂,一贯有挂实锤1、下载好四川麻将脚本下载之后...
围绕透视问题透视挂!开心麻将辅... 您好,开心麻将这款游戏可以开挂的,确实是有挂的,需要了解加去威信【136704302】很多玩家在这款...