mirror of
https://github.com/uetchy/namae.git
synced 2025-08-20 18:08:11 +09:00
fix: better suggestion
This commit is contained in:
@@ -1,6 +1,22 @@
|
||||
export function shuffleArray<T>(array: T[]): T[] {
|
||||
import MersenneTwister from 'mersennetwister';
|
||||
|
||||
const mt = new MersenneTwister();
|
||||
|
||||
export function times<T>(i: T, times: number): T[] {
|
||||
return Array.from({ length: times }, () => i);
|
||||
}
|
||||
|
||||
export function sample<T>(arr: T[]): T {
|
||||
return arr[Math.floor(mt.random() * arr.length)];
|
||||
}
|
||||
|
||||
export function sampleMany<T>(array: T[], maximum: number = 1): T[] {
|
||||
return shuffle(array).slice(0, maximum);
|
||||
}
|
||||
|
||||
export function shuffle<T>(array: T[]): T[] {
|
||||
for (let i = array.length - 1; i > 0; i--) {
|
||||
const j = Math.floor(Math.random() * (i + 1));
|
||||
const j = Math.floor(mt.random() * (i + 1));
|
||||
const temp = array[i];
|
||||
array[i] = array[j];
|
||||
array[j] = temp;
|
||||
@@ -8,18 +24,6 @@ export function shuffleArray<T>(array: T[]): T[] {
|
||||
return array;
|
||||
}
|
||||
|
||||
export function sampleFromArray<T>(array: T[], maximum: number): T[] {
|
||||
return shuffleArray(array).slice(0, maximum);
|
||||
}
|
||||
|
||||
export function fillArray<T>(array: T[], filler: string, maximum: number): T[] {
|
||||
const deficit = maximum - array.length;
|
||||
if (deficit > 0) {
|
||||
array = [...array, ...Array(deficit).fill(filler)];
|
||||
}
|
||||
return array;
|
||||
}
|
||||
|
||||
export function compose<T>(arg: T, ...fn: ((arg: T) => T)[]): T {
|
||||
return fn.reduce((arg, f) => f(arg), arg);
|
||||
}
|
||||
|
Reference in New Issue
Block a user