JavaScript如何按指定key对数组对象分组并生成目标结构?
JavaScript 按指定字段分组数组实现方案
你可以通过遍历数组 + 临时映射对象的方式实现需求,这是性能最优的方案之一,实现代码如下:
// 原数组 const originArr = [ {section: 'group_date', category: 'Support', category_value: '2021-10-11', datavalue: '2'}, {section: 'group_date', category: 'Support', category_value: '2021-10-20', datavalue: '3'}, {section: 'group_date', category: 'Support', category_value: '2021-11-02', datavalue: '1'}, {section: 'group_date', category: 'Dev', category_value: '2021-11-02', datavalue: '1'}, {section: 'group_date', category: 'Dev', category_value: '2021-11-03', datavalue: '1'} ]; // 临时映射对象,key为category值,value为对应分组的二维数组 const groupMap = {}; originArr.forEach(item => { const { category, category_value, datavalue } = item; // 当前分类不存在时先初始化 if (!groupMap[category]) { groupMap[category] = []; } // 把对应字段值组成数组存入分组 groupMap[category].push([category_value, datavalue]); }); // 将映射对象转换为目标格式的数组 const result = Object.entries(groupMap).map(([category, value]) => ({ category, value })); console.log(result);
运行代码后输出的result就是你需要的目标格式。
内容的提问来源于stack exchange,提问作者Ebison J
相关产品推荐
相关产品推荐

