platform/packages/core/src/common.ts
Kristina 643f34bf96
UBERF-5315: update chat (#4572)
Signed-off-by: Kristina Fefelova <kristin.fefelova@gmail.com>
2024-02-07 23:13:40 +07:00

26 lines
480 B
TypeScript

export function groupByArray<T, K> (array: T[], keyProvider: (item: T) => K): Map<K, T[]> {
const result = new Map<K, T[]>()
array.forEach((item) => {
const key = keyProvider(item)
if (!result.has(key)) {
result.set(key, [item])
} else {
result.get(key)?.push(item)
}
})
return result
}
export function flipSet<T> (set: Set<T>, item: T): Set<T> {
if (set.has(item)) {
set.delete(item)
} else {
set.add(item)
}
return set
}