首页 > web前端 > js教程 > 如何通过共享密钥对 JavaScript 数组中的对象进行分组?

如何通过共享密钥对 JavaScript 数组中的对象进行分组?

Barbara Streisand
发布: 2024-12-26 16:40:10
原创
653 人浏览过

How Can I Group Objects in a JavaScript Array by a Shared Key?

按键对数组中的对象进行分组

在编程中,经常需要根据共享键对数组中的对象进行分组。以以下汽车对象数组为例:

const cars = [
    {
        'make': 'audi',
        'model': 'r8',
        'year': '2012'
    },
    {
        'make': 'audi',
        'model': 'rs5',
        'year': '2013'
    },
    {
        'make': 'ford',
        'model': 'mustang',
        'year': '2012'
    },
    {
        'make': 'ford',
        'model': 'fusion',
        'year': '2015'
    },
    {
        'make': 'kia',
        'model': 'optima',
        'year': '2012'
    },
];
登录后复制

目标是创建一个新数组,其中汽车对象按 make 分组。使用普通 JavaScript,一种方法是使用 Array#reduce 方法和一个对象:

const result = cars.reduce((r, a) => {
    r[a.make] = r[a.make] || [];
    r[a.make].push(a);
    return r;
}, Object.create(null));

console.log(result);
登录后复制

此代码迭代 cars 数组并检查当前 make 是否作为结果对象中的键存在。如果没有,它将添加 make 作为键并初始化一个空数组。然后,它将当前汽车对象推入相应的数组,按品牌对对象进行有效分组。

生成的结果对象的结构如下:

{
    'audi': [
        {
            'model': 'r8',
            'year': '2012'
        },
        {
            'model': 'rs5',
            'year': '2013'
        },
    ],

    'ford': [
        {
            'model': 'mustang',
            'year': '2012'
        },
        {
            'model': 'fusion',
            'year': '2015'
        }
    ],

    'kia': [
        {
            'model': 'optima',
            'year': '2012'
        }
    ]
}
登录后复制

以上是如何通过共享密钥对 JavaScript 数组中的对象进行分组?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板