ソーダ色の研究

フロントやらバックやらなんやら

jsで配列をシャッフルする

マークダウンの練習がてら、BoostNoteに書いていたメモを少しずつこっちに移していこうかなと。

とりあえず最初はこれ。

const shuffleArray = (array)=>{
  let n = array.length, t, i;

  while (n) {
    i = Math.floor(Math.random() * n--);
    t = array[n];
    array[n] = array[i];
    array[i] = t;
  }

  return array;
};

引数に配列を渡してやると、シャッフルして返します。

const exampleArray = [1,2,3]
console.log(shuffleArray(exampleArray));

コンソールにシャッフルされた配列が表示されるかと思います。

因みに、下記のようにすれば、より簡潔に書けますが、 シャッフルに偏りが出てしまうので、ある程度厳密なシャッフルが必要な場合は 注意が必要です。

const exampleArray = [1,2,3]
exampleArray.sort(() => Math.random() - 0.5);

console.log(exampleArray);

おしまい