lodash是一个JavaScript实用工具库,提供了很多常用的函数方法,方便开发者进行数据处理和函数式编程。其中,groupBy函数可以根据指定的条件对数组进行分组。
使用lodash的groupBy函数进行多个嵌套的分组可以按照以下步骤进行:
npm install lodash
命令安装。import
或者require
语句导入lodash库。import _ from 'lodash'; // ES6模块导入方式
// 或者
const _ = require('lodash'); // CommonJS模块导入方式
const data = [
{ id: 1, category: 'A', subcategory: 'X', value: 10 },
{ id: 2, category: 'A', subcategory: 'Y', value: 20 },
{ id: 3, category: 'B', subcategory: 'X', value: 30 },
{ id: 4, category: 'B', subcategory: 'Y', value: 40 },
{ id: 5, category: 'C', subcategory: 'X', value: 50 },
{ id: 6, category: 'C', subcategory: 'Y', value: 60 },
];
const result = _.groupBy(data, (item) => item.category); // 第一层分组,按照category字段
const nestedResult = _.mapValues(result, (group) =>
_.groupBy(group, (item) => item.subcategory)
); // 第二层分组,按照subcategory字段
或者使用属性路径字符串进行分组:
const result = _.groupBy(data, 'category'); // 第一层分组,按照category字段
const nestedResult = _.mapValues(result, (group) =>
_.groupBy(group, 'subcategory')
); // 第二层分组,按照subcategory字段
console.log(nestedResult);
// 输出:
// {
// A: {
// X: [{ id: 1, category: 'A', subcategory: 'X', value: 10 }],
// Y: [{ id: 2, category: 'A', subcategory: 'Y', value: 20 }],
// },
// B: {
// X: [{ id: 3, category: 'B', subcategory: 'X', value: 30 }],
// Y: [{ id: 4, category: 'B', subcategory: 'Y', value: 40 }],
// },
// C: {
// X: [{ id: 5, category: 'C', subcategory: 'X', value: 50 }],
// Y: [{ id: 6, category: 'C', subcategory: 'Y', value: 60 }],
// },
// }
这样,你就可以使用lodash的groupBy函数进行多个嵌套的分组了。
关于lodash的groupBy函数的更多详细信息,你可以参考腾讯云的lodash文档:lodash.groupBy()
领取专属 10元无门槛券
手把手带您无忧上云