对数组obj进行分组可以使用不同的方法,以下是几种常见的分组方法:
以下是对每种方法的详细说明:
function groupBy(array, key) {
const groups = {};
array.forEach(item => {
const group = item[key];
if (!groups[group]) {
groups[group] = [];
}
groups[group].push(item);
});
return groups;
}
const obj = [
{ id: 1, name: 'John', group: 'A' },
{ id: 2, name: 'Jane', group: 'B' },
{ id: 3, name: 'Bob', group: 'A' },
{ id: 4, name: 'Alice', group: 'B' }
];
const groupedObj = groupBy(obj, 'group');
console.log(groupedObj);
输出结果为:
{
A: [
{ id: 1, name: 'John', group: 'A' },
{ id: 3, name: 'Bob', group: 'A' }
],
B: [
{ id: 2, name: 'Jane', group: 'B' },
{ id: 4, name: 'Alice', group: 'B' }
]
}
function groupBy(array, key) {
return array.reduce((result, currentValue) => {
const group = currentValue[key];
(result[group] = result[group] || []).push(currentValue);
return result;
}, {});
}
const obj = [
{ id: 1, name: 'John', group: 'A' },
{ id: 2, name: 'Jane', group: 'B' },
{ id: 3, name: 'Bob', group: 'A' },
{ id: 4, name: 'Alice', group: 'B' }
];
const groupedObj = groupBy(obj, 'group');
console.log(groupedObj);
输出结果与上述方法相同。
function groupBy(array, key) {
const groups = new Map();
array.forEach(item => {
const group = item[key];
if (!groups.has(group)) {
groups.set(group, []);
}
groups.get(group).push(item);
});
return Object.fromEntries(groups);
}
const obj = [
{ id: 1, name: 'John', group: 'A' },
{ id: 2, name: 'Jane', group: 'B' },
{ id: 3, name: 'Bob', group: 'A' },
{ id: 4, name: 'Alice', group: 'B' }
];
const groupedObj = groupBy(obj, 'group');
console.log(groupedObj);
输出结果与上述方法相同。
以上是对数组obj进行分组的几种常见方法。根据实际需求和情况选择合适的方法。
领取专属 10元无门槛券
手把手带您无忧上云