在lodash中,可以使用groupBy
函数对数据进行分组,并且可以使用可选属性进行分组。
groupBy
函数接受两个参数:要分组的数据集合和分组依据的属性。它会返回一个对象,其中键是分组依据的属性值,值是对应的分组结果。
下面是一个示例代码:
const _ = require('lodash');
const data = [
{ id: 1, name: 'Alice', gender: 'female' },
{ id: 2, name: 'Bob', gender: 'male' },
{ id: 3, name: 'Charlie', gender: 'male' },
{ id: 4, name: 'Diana', gender: 'female' },
];
const groupedData = _.groupBy(data, 'gender');
console.log(groupedData);
输出结果为:
{
female: [
{ id: 1, name: 'Alice', gender: 'female' },
{ id: 4, name: 'Diana', gender: 'female' }
],
male: [
{ id: 2, name: 'Bob', gender: 'male' },
{ id: 3, name: 'Charlie', gender: 'male' }
]
}
在这个例子中,我们将数据按照gender
属性进行了分组。female
和male
分别作为键,对应的数据项组成的数组作为值。
如果要使用可选属性进行分组,可以使用函数作为第二个参数,该函数接受每个数据项作为参数,并返回分组依据的属性值。下面是一个示例代码:
const _ = require('lodash');
const data = [
{ id: 1, name: 'Alice', age: 25 },
{ id: 2, name: 'Bob', age: 30 },
{ id: 3, name: 'Charlie', age: 25 },
{ id: 4, name: 'Diana', age: 30 },
];
const groupedData = _.groupBy(data, item => item.age > 28 ? 'above28' : 'belowOrEqual28');
console.log(groupedData);
输出结果为:
{
belowOrEqual28: [
{ id: 1, name: 'Alice', age: 25 },
{ id: 3, name: 'Charlie', age: 25 }
],
above28: [
{ id: 2, name: 'Bob', age: 30 },
{ id: 4, name: 'Diana', age: 30 }
]
}
在这个例子中,我们使用了一个函数作为第二个参数,根据每个数据项的age
属性是否大于28来返回分组依据的属性值。如果age
大于28,则返回above28
,否则返回belowOrEqual28
。
对于lodash的详细介绍和更多用法,可以参考腾讯云的lodash产品介绍页面:lodash产品介绍
领取专属 10元无门槛券
手把手带您无忧上云