summaryrefslogtreecommitdiff
path: root/packages/client/src/scripts
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2022-07-15 22:45:13 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2022-07-15 22:45:13 +0900
commit4c8a1867f09efe6b2475e37efa1dce5d89c56a54 (patch)
tree1d97e465f7dd0d4814568db8670ef4588ac48ef6 /packages/client/src/scripts
parentMerge branch 'develop' (diff)
parent12.114.0 (diff)
downloadmisskey-4c8a1867f09efe6b2475e37efa1dce5d89c56a54.tar.gz
misskey-4c8a1867f09efe6b2475e37efa1dce5d89c56a54.tar.bz2
misskey-4c8a1867f09efe6b2475e37efa1dce5d89c56a54.zip
Merge branch 'develop'
Diffstat (limited to 'packages/client/src/scripts')
-rw-r--r--packages/client/src/scripts/shuffle.ts19
1 files changed, 19 insertions, 0 deletions
diff --git a/packages/client/src/scripts/shuffle.ts b/packages/client/src/scripts/shuffle.ts
new file mode 100644
index 0000000000..05e6cdfbcf
--- /dev/null
+++ b/packages/client/src/scripts/shuffle.ts
@@ -0,0 +1,19 @@
+/**
+ * 配列をシャッフル (破壊的)
+ */
+export function shuffle<T extends any[]>(array: T): T {
+ let currentIndex = array.length, randomIndex;
+
+ // While there remain elements to shuffle.
+ while (currentIndex !== 0) {
+ // Pick a remaining element.
+ randomIndex = Math.floor(Math.random() * currentIndex);
+ currentIndex--;
+
+ // And swap it with the current element.
+ [array[currentIndex], array[randomIndex]] = [
+ array[randomIndex], array[currentIndex]];
+ }
+
+ return array;
+}