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

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

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

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

Q&A

解決済

1回答

466閲覧

JavaScriptで複数の配列の正誤判定を行いたい

kinoko_0129

総合スコア6

JavaScript

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

0グッド

1クリップ

投稿2023/02/22 18:30

編集2023/02/22 18:35

実現したいこと

JavaScriptで複数の配列の正誤判定を行いたいです.

前提

ソースコードは比較する配列answerArrayと正しい配列correctAnswer1の比較を行っています. 中の要素の順番全てが一致していれば「正解」一致していなければ「不正解」を返すようにしています. このプログラムをもとにanswerArrayがcorrectAnswer1かcorrectAnswer2のいずれかと配列と一致していれば「正解」を返すようなプログラムのアドバイスを頂きたいです.

該当のソースコード

JavaScript

1// 正しい配列1 2const correctAnswer1 = [ 'D', 'C', 'B', 'A'] 3// 正しい配列2 4const correctAnswer2 = [ 'D', 'B', 'C', 'A'] 5 6// 比較する配列 7const answerArray = [ 'D', 'B', 'C', 'A'] 8 9let isCorrect = true; 10 11for(let i = 0; i < correctAnswer1.length; i++){ 12 // 正しい配列のi番目の要素を格納 13 const corAnswer = correctAnswer[i]; 14 // 比較する配列のi番目の要素を格納 15 const ansArray = answerArray[i]; 16 17 if(corAnswer !== ansArray){ 18 isCorrect = false; 19 break; 20 } 21} 22 23if(isCorrect == true){ 24 console.log("正解"); 25}else{ 26 console.log("不正解"); 27}

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

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

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

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

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

hoshi-takanori

2023/02/22 21:05

まず配列を比較する関数を定義すると良いのでは。
maisumakun

2023/02/23 00:09

現状のコードではどのような問題があるのでしょうか?
kinoko_0129

2023/02/23 06:09

今のコードでは配列1つ(correctAnswer1)としか比較できないので, 2つの配列(correctAnswer1,2)のうち, どちらか一方でも一致すれば正解を返すようにしたいです. 今のコードではcorrectAnswer2と比較できていないことが問題
guest

回答1

0

ベストアンサー

既存の判定用for構文を関数judg()に組み込みました。判定する回答(ここではanswerArray)と正答(correctAnswer1またはcorrectAnswer2)を引数(input correct)にそれぞれ指定することで、合っていればtrue、間違っていればfalseが帰ってきます。
||演算子を使うと、どちらかがtrueならtrueになります。これにより、どちらかが正しければ正解、両方と食い違ったら不正解になります。ちなみに、judg() || judg() || judg()というようにいくらでも連結できます。(説明分かりづらいと思うので質問あればコメントにお願いします)

javascript

1// 正しい配列1 2const correctAnswer1 = [ 'D', 'C', 'B', 'A'] 3// 正しい配列2 4const correctAnswer2 = [ 'D', 'B', 'C', 'A'] 5 6// 比較する配列 7const answerArray = [ 'D', 'B', 'C', 'A'] 8 9//判定用関数 10function judg(input,correct){ 11 for(let i = 0; i < correct.length; i++){ 12 // 正しい配列のi番目の要素を格納 13 const corAnswer = correct[i]; 14 // 比較する配列のi番目の要素を格納 15 const ansArray = input[i]; 16 17 if(corAnswer !== ansArray){ 18 return false; //間違ってるのでfalseを返す 19 } 20 } 21 return true; //合ってるのでtrueを返す 22} 23 24// || はどちらかがtrueならtrueを返す 25let isCorrect = judg(answerArray,correctAnswer1) || judg(answerArray,correctAnswer2) 26 27if(isCorrect == true){ 28 console.log("正解"); 29}else{ 30 console.log("不正解"); 31} 32 33//以下、テスト用 34const test1 = ["D","C","B","A"] 35const test2 = ["A","C","B","D"] 36const test3 = ["A","B","C"] 37const test4 = ["A","B","C","D","E"] 38 39console.log(judg(test1,correctAnswer1)||judg(test1,correctAnswer2)) //true 40console.log(judg(test2,correctAnswer1)||judg(test2,correctAnswer2)) //false 41console.log(judg(test3,correctAnswer1)||judg(test3,correctAnswer2)) //false 42console.log(judg(test4,correctAnswer1)||judg(test4,correctAnswer2)) //false

投稿2023/02/23 06:37

task58.js

総合スコア26

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

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

kinoko_0129

2023/02/23 08:03

回答ありがとうございます!説明もとても分かりやすかったです! 正しい配列パターンも後々増やしていく必要があったので, とても助かりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.39%

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

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

質問する

関連した質問