summaryrefslogtreecommitdiff
path: root/packages/client/src/scripts
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2022-07-15 17:12:08 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2022-07-15 17:12:08 +0900
commit6f45208ab63de75023f50984d465f905e82b0003 (patch)
treea4ec9002049b92c767dce3376fcab35f3bf62cd7 /packages/client/src/scripts
parentchore(client): tweak ui (diff)
downloadmisskey-6f45208ab63de75023f50984d465f905e82b0003.tar.gz
misskey-6f45208ab63de75023f50984d465f905e82b0003.tar.bz2
misskey-6f45208ab63de75023f50984d465f905e82b0003.zip
enhance(client): RSSティッカーで表示順序をシャッフルできるように
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;
+}