超大雑把に配列の順序をランダムにする方法 (非破壊編集)

超大雑把に配列の順序をランダムにする方法 (非破壊編集):

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); 
} 
これでまあまあランダムに並び替えてくれるので、ライトな使い方では十分でしょう。

コメント

このブログの人気の投稿

投稿時間:2021-06-17 05:05:34 RSSフィード2021-06-17 05:00 分まとめ(1274件)

投稿時間:2021-06-20 02:06:12 RSSフィード2021-06-20 02:00 分まとめ(3871件)

投稿時間:2020-12-01 09:41:49 RSSフィード2020-12-01 09:00 分まとめ(69件)