首页 >web前端 >js教程 >如何使用 Lodash 或纯 JavaScript 在 JavaScript 中按键对对象数组进行分组?

如何使用 Lodash 或纯 JavaScript 在 JavaScript 中按键对对象数组进行分组?

Linda Hamilton
Linda Hamilton原创
2024-12-19 19:15:11914浏览

How to Group an Array of Objects by Key in JavaScript using Lodash or Plain JavaScript?

使用 Javascript 和 Lodash 按键对对象数组进行分组

根据特定键对数组中的对象进行分组是一种常见操作。虽然 Lodash 提供了一个强大的库来处理此类任务,但也可以使用简单的 Javascript 来实现它。

考虑以下汽车对象数组:

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,可以应用以下解决方案:

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

此代码利用 Array#reduce 来迭代“cars”数组。对于每个对象,它检查“结果”对象中是否存在其“make”条目。如果没有,它会为“make”创建一个新数组并将当前对象推入其中。如果条目已经存在,它只是将对象推入数组。

Lodash 还提供了执行此任务的快捷方式:

const groupedCars = _.groupBy(cars, 'make');

_.groupBy 方法采用一个数组和一个属性名称并返回一个新对象,其中键是指定属性的值,值是按该属性分组的对象的数组。

以上是如何使用 Lodash 或纯 JavaScript 在 JavaScript 中按键对对象数组进行分组?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn