summaryrefslogtreecommitdiff
path: root/src/prelude/array.ts
diff options
context:
space:
mode:
authorMeiMei <30769358+mei23@users.noreply.github.com>2019-10-21 00:43:39 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2019-10-21 00:43:39 +0900
commit4c6c06c80afd3e2309b305f40c2e67e48863bf31 (patch)
treed9d24139b126867a3ff1f4e893175aea05ebd01e /src/prelude/array.ts
parentAdd ssl to elasticsearch config settings (#5527) (diff)
downloadsharkey-4c6c06c80afd3e2309b305f40c2e67e48863bf31.tar.gz
sharkey-4c6c06c80afd3e2309b305f40c2e67e48863bf31.tar.bz2
sharkey-4c6c06c80afd3e2309b305f40c2e67e48863bf31.zip
Improve emoji-picker (#5515)
* Improve emoji-picker * remove unimplanted translation * カテゴリのサジェスト * use unique
Diffstat (limited to 'src/prelude/array.ts')
-rw-r--r--src/prelude/array.ts13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/prelude/array.ts b/src/prelude/array.ts
index 839bbc920b..f4d684d574 100644
--- a/src/prelude/array.ts
+++ b/src/prelude/array.ts
@@ -84,6 +84,19 @@ export function groupOn<T, S>(f: (x: T) => S, xs: T[]): T[][] {
return groupBy((a, b) => f(a) === f(b), xs);
}
+export function groupByX<T>(collections: T[], keySelector: (x: T) => string) {
+ return collections.reduce((obj: Record<string, T[]>, item: T) => {
+ const key = keySelector(item);
+ if (!obj.hasOwnProperty(key)) {
+ obj[key] = [];
+ }
+
+ obj[key].push(item);
+
+ return obj;
+ }, {});
+}
+
/**
* Compare two arrays by lexicographical order
*/