应用场景:
项目返回一个list ,需要按创建时间来分成每天一组如:
原属组
let list = [
{
type:'目标1',
name:'111'
},
{
type:'目标1',
name:'111'
},
{
type:'目标2',
name:'111'
},
{
type:'目标2',
name:'111'
},
{
type:'目标2',
name:'111'
},
]
分组后属组
let list = [
[
{
type:'目标1',
name:'111'
},
{
type:'目标1',
name:'111'
},
],
[
{
type:'目标2',
name:'111'
},
{
type:'目标2',
name:'111'
},
{
type:'目标2',
name:'111'
},
]
]
方法代码如下:
//按类型分组
export function getGroupList (sortData) {
const groupBy =(array,f) =>{
let groups = {};
array.forEach((o)=>{
let group = JSON.stringify(f(o));
groups[group] = groups[group] || [];
groups[group].push(o);
});
return Object.keys(groups).map((group) =>{
return groups[group];
})
}
const sorted = groupBy(sortData,(item)=>{
return item.type; //要分组的字段,用时要改成你们自己的项目的
})
return sorted
}
使用:
//使用时直接打印
console.log( getGroupList(list),'====list')