質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

Q&A

解決済

1回答

1085閲覧

javascipt クイズの選択肢シャッフル 選択肢ではなく多次元配列の配列自体がシャッフルしてしまう

daikiii

総合スコア3

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

0グッド

0クリップ

投稿2020/11/29 11:23

編集2020/11/29 11:33

現在三択クイズを作っていて選択肢をシャッフルして表示できるようにしたいのですが、
このコードでは、選択肢ではなく、下のように配列自体がシャッフルしてしまいます。
["こうじまち","おかとまち","かゆまち"],
["ごせいもん","おなりもん","おかどもん"],
["みとちょう","おかちまち","ごしろちょう"],
["たかなわ","こうわ","たかわ"],
["ろっこつ","ししぼね","しこね"],

そうではなく、下のように配列自体をシャッフルするのではなく、選択肢の中身をシャッフルしたいのですが何か解決策があれば教えていただきたいです。

["たかなわ""たかわ","こうわ",], ["かめと""かめいど","かめど",], ["こうじまち","かゆまち""おかとまち",], ["おなりもん","ごせいもん","おかどもん"],

javascript

1コード const quizeSet = shuffle([ 2 ["たかなわ","こうわ","たかわ"], 3 ["かめいど","かめど","かめと"], 4 ["こうじまち","おかとまち","かゆまち"], 5 ["ごせいもん","おなりもん","おかどもん"], 6 ["とどろき","たたりき","たたら"], 7 ["せきこうい","いじい","しゃくじい"], 8 ["ざっしょく","ざっしき","ぞうしき"], 9 ["みとちょう","おかちまち","ごしろちょう"], 10 ["ろっこつ","ししぼね","しこね"], 11 ["こぐれ","こばく","こしゃく"], 12 ]); 13 14 15 function shuffle(arr) { 16 for (let k = arr.length - 1; k > 0; k--) { // i = ランダムに選ぶ終点のインデックス 17 const j = Math.floor(Math.random() * (k + 1)); // j = 範囲内から選ぶランダム変数 18 [arr[j], arr[k]] = [arr[k], arr[j]]; // 分割代入 i と j を入れ替える 19 } 20 return arr; 21 } 22 23 for(let i = 0; i < quizeSet.length; i++){ 24 let h = '<div class="container" id="container">' 25 + '<div class="box" id="box">' 26 + '<p class="title" id="title">' 27 +`${i + 1}.この地名はなんて読む?` 28 +'</p>' 29 + `<img src="./img/${[i]}.png">` //変数iを埋め込む 30 + '</div>' 31 + '<div class="btn" id="btn">' 32 + '<ul id="ul">' 33 + `<li id="li">${quizeSet[i][0]}</li>` 34 + `<li id="li">${quizeSet[i][1]}</li>` 35 + `<li id="li">${quizeSet[i][2]}</li>` 36 // document.write(y); 37 // }; 38 + '<div id="target">' 39 + '<p id="success" ></p>' 40 + '<p id="successText"></p>' 41 + '</div>' 42 + '</ul>' 43 + '</div>' 44 + '</div>'; 45 document.write(h); 46 };

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

javascript

1const quizeSet = [ 2 ["たかなわ","こうわ","たかわ"], 3 ["かめいど","かめど","かめと"], 4 ["こうじまち","おかとまち","かゆまち"], 5 ["ごせいもん","おなりもん","おかどもん"], 6 ["とどろき","たたりき","たたら"], 7 ["せきこうい","いじい","しゃくじい"], 8 ["ざっしょく","ざっしき","ぞうしき"], 9 ["みとちょう","おかちまち","ごしろちょう"], 10 ["ろっこつ","ししぼね","しこね"], 11 ["こぐれ","こばく","こしゃく"], 12 ].map(shuffle);

投稿2020/11/29 11:41

papinianus

総合スコア12705

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

daikiii

2020/11/30 06:32

解決しました。 ありがとうございます
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問