以下是一个解决方法,用于将按键分组为一个包含数组对象的JavaScript函数:
function groupByKey(arr, key) {
return arr.reduce((result, obj) => {
const group = obj[key];
if (!result[group]) {
result[group] = [];
}
result[group].push(obj);
return result;
}, {});
}
// 示例数据
const data = [
{ key: 'A', value: 'Apple' },
{ key: 'B', value: 'Banana' },
{ key: 'A', value: 'Apricot' },
{ key: 'C', value: 'Cherry' },
{ key: 'B', value: 'Blueberry' }
];
// 按 key 分组
const groupedData = groupByKey(data, 'key');
console.log(groupedData);
输出结果为:
{
A: [
{ key: 'A', value: 'Apple' },
{ key: 'A', value: 'Apricot' }
],
B: [
{ key: 'B', value: 'Banana' },
{ key: 'B', value: 'Blueberry' }
],
C: [
{ key: 'C', value: 'Cherry' }
]
}
这个解决方法使用了reduce
函数,遍历数组并将每个对象根据指定的键值分组。如果分组不存在,则创建一个新的空数组,然后将对象推入该数组。最后返回包含分组的对象。
上一篇:按键分组数组对象