📅  最后修改于: 2023-12-03 14:42:35.073000             🧑  作者: Mango
在 JavaScript 中,我们经常需要对数组进行分组操作。本篇文章将介绍如何使用 JavaScript 将数组按照指定的 id 进行分组。
假设我们有一个包含多个对象的数组,每个对象都有一个 id 属性。我们希望将这个数组按照 id 分组,并以 id 作为键名,将相同 id 的对象数组合并到同一个键值中。
我们可以使用 JavaScript 的 reduce 方法实现对数组的分组操作。
const data = [
{ id: '1', name: 'Alice' },
{ id: '2', name: 'Bob' },
{ id: '1', name: 'Charlie' },
{ id: '3', name: 'David' },
];
const groups = data.reduce((acc, cur) => {
acc[cur.id] = acc[cur.id] || [];
acc[cur.id].push(cur);
return acc;
}, {});
console.log(groups);
上面的代码将输出以下结果:
{
"1": [
{ "id": "1", "name": "Alice" },
{ "id": "1", "name": "Charlie" }
],
"2": [
{ "id": "2", "name": "Bob" }
],
"3": [
{ "id": "3", "name": "David" }
]
}
我们使用 reduce 方法对原数组进行遍历,如果当前对象的 id 还没有在结果对象中出现过,我们就创建一个新的数组并将其作为键值的初始值。然后,将当前对象添加到该数组中。最后,将结果对象返回。
这样,我们就可以得到一个以 id 为键名的对象,其中每个键值都是一个包含相同 id 对象的数组。
本文介绍了如何使用 JavaScript 数组的 reduce 方法实现对数组按 id 进行分组的操作。这种方式简单有效,代码量也很少,是开发中实用的技巧之一。