aboutsummaryrefslogtreecommitdiffstats
path: root/catalog-ui/src/app/ng2/pipes/groupBy.pipe.ts
diff options
context:
space:
mode:
authorMichael Lando <ml636r@att.com>2017-06-09 03:19:04 +0300
committerMichael Lando <ml636r@att.com>2017-06-09 03:19:04 +0300
commited64b5edff15e702493df21aa3230b81593e6133 (patch)
treea4cb01fdaccc34930a8db403a3097c0d1e40914b /catalog-ui/src/app/ng2/pipes/groupBy.pipe.ts
parent280f8015d06af1f41a3ef12e8300801c7a5e0d54 (diff)
[SDC-29] catalog 1707 rebase commit.
Change-Id: I43c3dc5cf44abf5da817649bc738938a3e8388c1 Signed-off-by: Michael Lando <ml636r@att.com>
Diffstat (limited to 'catalog-ui/src/app/ng2/pipes/groupBy.pipe.ts')
-rw-r--r--catalog-ui/src/app/ng2/pipes/groupBy.pipe.ts19
1 files changed, 19 insertions, 0 deletions
diff --git a/catalog-ui/src/app/ng2/pipes/groupBy.pipe.ts b/catalog-ui/src/app/ng2/pipes/groupBy.pipe.ts
new file mode 100644
index 0000000000..17ccc0ca75
--- /dev/null
+++ b/catalog-ui/src/app/ng2/pipes/groupBy.pipe.ts
@@ -0,0 +1,19 @@
+/**
+ * Created by rc2122 on 5/17/2017.
+ */
+import {Pipe, PipeTransform} from '@angular/core';
+
+@Pipe({name: 'groupBy'})
+export class GroupByPipe implements PipeTransform {
+ transform(value: Array<any>, field: string): Array<any> {
+ const groupedObj = value.reduce((prev, cur)=> {
+ if(!prev[cur[field]]) {
+ prev[cur[field]] = [cur];
+ } else {
+ prev[cur[field]].push(cur);
+ }
+ return prev;
+ }, {});
+ return Object.keys(groupedObj).map((key:string) => {return { key, value: groupedObj[key] }; });
+ }
+}