小粋空間: 商品リンクをランダムに切り替える
http://www.koikikukan.com/archives/2005/11/23-23 …
上記のエントリーを参考に、amazonの商品リンクをランダムで表示させようと試してみたのですが、上記の方法だと例えば商品をA~Eまで登録していたとしても、実際ランダム表示されるのはA~Eの中から1つだけになってしまいます。
これを、個数を指定してランダム表示されるようにしたい(3と指定したとすると、A~Eの中からランダムに3つ商品を表示、のように)のですが、その際、指定数は決め打ちせず、簡単に変えられるようにしておきたいのです。
「重複しない乱数を取り出す」等検索してみましたが、不勉強のため類似質問から応用できず…
知識のある方、ご教授いただけないでしょうか。
よろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
知識はないのに回答してしみませんが、いろいろ方法はあるのではないでしょうか?
全体が配列に入っているとして、とりあえず思いつくのは・・・
1)取り出したらマークをつけておく。
乱数で呼び出すときにマークがないものが出るまで繰り返す。
2)最初に、シャッフルしておく。
配列の引数回ループでまわして、適当に入れ替えを行う。
3)取り出したものをストックしておいて、新しいものを採用する前に
それまでのものと比較して同じものがなければ採用する。
とか・・・
簡易的でよければこんなのでも、一応、ランダムになるのではないでしょうか?
全体の数と使用する数となどを考慮して効率の良い方法を決めればよいかと思います。
2)の例を以下に(リロードする度に、シャッフル後の順が変わります)
<html>
<body>
<script>
var m="最初:"; var a=[];
//最初は1~20をセット
for (var i=0; i<20; i++){a[i]=i+1; m+=" ," + a[i];}
//シャッフル
for (i=0; i<20; i++){
var n=Math.floor(Math.random() * 20);
if (i!=n) {var tmp=a[i];a[i]=a[n];a[n]=tmp;}
}
//結果を表示
m+="\n<p>混合:";
for (i=0; i<20; i++){m+=" ," + a[i];}
document.write(m);
</script>
</body>
</html>
ご回答ありがとうございます。
全く知識がなかったために、アドバイスいただいた内容もよく理解できない状態だったのですが、入門ページ等とにらめっこで何とか思い通りの挙動をさせることができました。
2)のやり方が一般的?なのかどうかわかりませんが、他の例文にも見られましたので、その方法をとることにしました。
これを機にjavascriptもがんばらなければと思います…
どうもありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(買い物・ショッピング) JANコードの登録について 1 2022/07/23 14:19
- Excel(エクセル) エクセルの数式について教えてください。 2 2023/03/04 09:54
- Visual Basic(VBA) VBAコードで質問があります 2 2022/10/20 15:27
- 統計学 統計:アンケート結果の読み解き方法(カイ二乗検定の必要性の有無) 13 2022/12/03 23:13
- Excel(エクセル) 重複データの抽出について 2 2023/07/21 14:52
- Excel(エクセル) excelで検索した商品の画像(ネットワーク上の)を表示させたい。 3 2023/06/28 00:32
- その他(データベース) Q&Aフォームを作成したいのですが、どう設計してよいか分かりません、アドバイスお願い致します。 1 2023/07/27 19:04
- Excel(エクセル) ピボットテーブルの表示変更の仕方 初心者なので、的外れな質問だったらすみません 受注日ごとに商品名と 1 2022/04/26 23:23
- Excel(エクセル) SUMIFのIF分岐について 4 2023/04/15 12:57
- Excel(エクセル) エクセルについて教えてください。 1 2023/03/03 08:38
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
同じIDで定義した要素の配列を...
-
C#テキストボックスの文字を配...
-
javascript 変数名の連結をしたい
-
Perlの配列をJavaScriptに渡せ...
-
jspからjavascriptの変数引継ぎ
-
javascriptからphpに配列データ...
-
Javascriptで文字を順番に表示...
-
JavaScriptからPHPに配列を渡す...
-
HTMLで誕生石と星座をアラート...
-
バナーのランダム表示(複数、...
-
雪を降らせるみたいな、ゆらゆ...
-
javascriptで行を抽出したいです。
-
乱数を配列へ格納(JavaScript)
-
jQueryで文字数カウンタ(複数...
-
Boolean型配列中のTrueの有無を...
-
google apps scriptの終了のさせ方
-
functionから別のfunctionを実...
-
変数と文字列からオブジェクト...
-
【Jquery】changeイベント毎にa...
-
gas スプレッドシートがアクテ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
同じIDで定義した要素の配列を...
-
C#テキストボックスの文字を配...
-
jspからjavascriptの変数引継ぎ
-
javascript 変数名の連結をしたい
-
二次元配列を使って順位をだす...
-
React hooksが値を返して配列変...
-
undefinedを表示させない方法は...
-
フォーム入力値の重複チェック
-
javascriptで行を抽出したいです。
-
JavaScriptでの動的な多次元配...
-
多次元配列から最大値を1行また...
-
重複しないようにランダムで表...
-
1から20までの整数から、重複な...
-
HTMLで誕生石と星座をアラート...
-
JSONデータを50音順でソートしたい
-
JavaScriptにおける[] とか :...
-
gas 配列
-
【JavaScript】オブジェクト型...
-
JavaScriptで簡単なクイズを作...
-
WSH(Jscript)でファイル一覧
おすすめ情報