JavaScript配列の要素をシャッフルする方法

簡潔な答え:

let list = [1, 2, 3, 4, 5, 6, 7, 8, 9]
list = list.sort(() => Math.random() - 0.5)

長い答え:

JavaScript配列の要素をシャッフルする必要がありました。

つまり、配列要素をリミックスして、前の要素とは異なる順序にする必要がありました。

このような配列から開始します。

[1, 2, 3, 4, 5, 6, 7, 8, 9]

次のように、操作を実行するたびに別の何かが必要でした。

[4, 8, 2, 9, 1, 3, 6, 5, 7]
[5, 1, 2, 3, 7, 4, 9, 6, 8]
[3, 1, 4, 7, 8, 6, 2, 9, 5]

これが私が思いついたプロセスです。与えられた配列list

const list = [1, 2, 3, 4, 5, 6, 7, 8, 9]

私たちはsort()-0.5〜0.5の値を返す関数を受け入れるメソッド:

list.sort(() => Math.random() - 0.5)

この関数は、配列内のすべての要素に対して実行されます。次のように、配列の2つの要素を渡すことができます。list.sort((a, b) => Math.random() - 0.5)しかし、この場合、私たちはそれらを使用していません。この操作の結果が0未満の場合、要素aより低いインデックスに置かれますb, and the opposite if the result is > 0.

あなたはできるArray.sort()のすべての詳細をここで読んでください

呼び出しsort()リスト上では、元の配列値は変更されません。

これで、この操作の結果を次のように新しい変数に割り当てることができます。

const shuffled = list.sort(() => Math.random() - 0.5)

または、既存のリストを上書きすることもできます。let変数:

let list = [1, 2, 3, 4, 5, 6, 7, 8, 9]
list = list.sort(() => Math.random() - 0.5)

私の無料ダウンロードJavaScriptビギナーズハンドブック


その他のjsチュートリアル: