diff options
| author | tamaina <tamaina@hotmail.co.jp> | 2018-09-15 22:15:56 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2018-09-15 22:15:56 +0900 |
| commit | 8f8c67ad6d33eb9ced1844bb372d517204df6c6f (patch) | |
| tree | bcaedee83bb5960a6b63291795dd95f9ed603a99 /src/prelude/array.ts | |
| parent | fix mk-media darkmode (diff) | |
| parent | 8.41.0 (diff) | |
| download | misskey-8f8c67ad6d33eb9ced1844bb372d517204df6c6f.tar.gz misskey-8f8c67ad6d33eb9ced1844bb372d517204df6c6f.tar.bz2 misskey-8f8c67ad6d33eb9ced1844bb372d517204df6c6f.zip | |
Merge branch 'develop' into improve-media
Diffstat (limited to 'src/prelude/array.ts')
| -rw-r--r-- | src/prelude/array.ts | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/src/prelude/array.ts b/src/prelude/array.ts new file mode 100644 index 0000000000..54f7081712 --- /dev/null +++ b/src/prelude/array.ts @@ -0,0 +1,27 @@ +export function countIf<T>(f: (x: T) => boolean, xs: T[]): number { + return xs.filter(f).length; +} + +export function count<T>(x: T, xs: T[]): number { + return countIf(y => x === y, xs); +} + +export function concat<T>(xss: T[][]): T[] { + return ([] as T[]).concat(...xss); +} + +export function intersperse<T>(sep: T, xs: T[]): T[] { + return concat(xs.map(x => [sep, x])).slice(1); +} + +export function erase<T>(x: T, xs: T[]): T[] { + return xs.filter(y => x !== y); +} + +export function unique<T>(xs: T[]): T[] { + return [...new Set(xs)]; +} + +export function sum(xs: number[]): number { + return xs.reduce((a, b) => a + b, 0); +} |