超大雑把に配列の順序をランダムにする方法 (非破壊編集)
超大雑把に配列の順序をランダムにする方法 (非破壊編集):
JavaScriptでランダムに配列をソートしたい、だけどもとの配列に影響を与えたくないということで考えたものです。
Fisher-Yates というアルゴリズムを見かけたのですが、もとの配列を並び替えるし状態管理の変数を使うというものだったのでスルーです。
最終的なコードは下記の通り。
これでまあまあランダムに並び替えてくれるので、ライトな使い方では十分でしょう。
JavaScriptでランダムに配列をソートしたい、だけどもとの配列に影響を与えたくないということで考えたものです。
Fisher-Yates というアルゴリズムを見かけたのですが、もとの配列を並び替えるし状態管理の変数を使うというものだったのでスルーです。
最終的なコードは下記の通り。
const randomSort = (srcArr) => {
const newArr = Array(source.length);
srcArr.map(value => {
const key = Math.floor(Math.random() * (srcArr.length + 1));
newArr.splice(key, 0, value);
})
return newArr.filter(v => v);
}
コメント
コメントを投稿