使用 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中文网其他相关文章!