按键对数组中的对象进行分组
在编程中,经常需要根据共享键对数组中的对象进行分组。以以下汽车对象数组为例:
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中文网其他相关文章!