複数行テキストを行ごとにシャッフルする「Shuffle Lines」を作った
久々に Angular Utilities ネタ。
複数行のテキストを入力すると、行ごとに並び順をシャッフルする、「Shuffle Lines」というアプリを作った。
盲点だったのだが、JavaScript (ES2015) には Array#shuffle()
のような関数がなかった。PHP とかだとあるんだけどな。
以下のように Math.random()
を使って1行でも実装できるのだが、調べると大量に出てくる「フィッシャー・イエーツ法」で実装した。
それだけ。