ng2-gantt
Version:
Angular 2 Gantt
25 lines (24 loc) • 688 B
text/typescript
import { Pipe, PipeTransform } from '@angular/core';
/*
* Group the array by given function
* Takes an array argument that defaults to 1.
* Usage:
* array | groupBy:func()
* Example:
* {{ [ { id: '1'}] | groupBy: }}
* formats to: []
*/
({name: 'groupBy'})
export class GroupByPipe implements PipeTransform {
transform(array: any[], f: any): any[] {
var groups = {};
array.forEach((o:any) => {
var group = JSON.stringify(f(o));
groups[group] = groups[group] || [];
groups[group].push(o);
});
return Object.keys(groups).map((group:any) => {
return groups[group];
});
}
}