JavaScriptで特定の範囲内から数値が被らずにランダムに取り出す方法
2024/05/22
1位から20位のランキング内でJavaScriptを用いてランダムに表示させたかった。つまり特定の範囲内から数値が被らずにランダムに取り出したい。以下にソースコードをメモ。
ソースコード
const array = [];
const limit = 5;
for( let i = 0; i < limit; i++ ){ //0~limitまでの整数を順番に配列に格納
array[i] = i + 1;
}
const shuffle_array = []; //ランダムな数値を入れる配列の宣言
let random_key; //ランダムな数値を入れる変数の宣言
for( let i = 0; i < limit; i++ ){ // 0~limitまでループ
random_key = Math.floor(Math.random()*array.length); //変数に指定した範囲(1-20)のランダムな整数値を入れる
shuffle_array[i] = array[random_key]; //配列へ指定した範囲(1-20)のランダムな整数値を入れる
array.splice(random_key, 1); //順番に整数を入れていた配列から、ランダム変数にあたる要素を削除
}
console.log(shuffle_array); //Array(5) [ 2, 3, 4, 5, 1 ]
参考サイト
関連記事
-
-
HTMXで指定ページ内の指定要素を取得及び出力する方法サンプル
あるサイトのHTMLタグ内に「hx-〇〇」という見慣れないタグが記述されていた。 ...
-
-
セレクトメニュー(プルダウン)をdisplay:none;指定してもiPhoneのみ非表示にならない問題の対応方法
セレクトメニュー(プルダウン)に対してdisplay:none;指定したりjQu ...
-
-
JavaScriptのリッチなalert / confirmぽいウィンドウを表示する「sweetalert2」の利用方法
JavaScriptのalert / confirmはブラウザによって表示位置や ...
-
-
sweetalert2を閉じた後、指定位置にスクロールしようとしても元の位置に戻る現象を解決する方法
sweetalert2で表示したウィンドウを閉じた後、指定位置にスクロールさせた ...
-
-
IE11でフォーム送信時に二重登録される
Internet Explorer11でform送信時にデータが二重登録されると ...