前提・実現したいこと
以下のHTML, Javascriptにて、「当選結果を確認する」というボタンを押した際、USERとCOMとの数字の一致した数に応じて、「当選結果」のところに、「ストレート(USERとCOMの数字が3つとも一致)」「ボックス(USERとBOXの数字が最低1つ一致)」「ハズレ(一致せず)」と表示したいと思っていますが、そこで詰まってしまいました。どのようにすれば表示可能でしょうか?
**(追記箇所)
具体的には、
・まずUSERで入力した3つの数字とCOMでランダムに生成された3つの数字が順不同で全て一致した場合に「ストレート」を表示。次にUSER, COMの数字のうちいずれか1つでも一致した場合に「ボックス」と表示。最後に、USER, COMで生成された数字がどれも一致しなかった場合に「ハズレ」と表示。
・重複選択はありです。
・一度USER, COMの数値データを配列に入れて、その中の数字の一致の有無を求めようと、someとeveryを使用してやろうとしましたが、動きませんでした。ですので、someとeveryを使用して、USERとCOMとの数字が一致しているかどうかを検索し、その結果を表示するようにしたいです。
**
発生している問題・エラーメッセージ
該当箇所が表示されず
該当のソースコード
<!doctype html> <html> <head> <meta charset="UTF-8"> <title>javascript_17_5</title> </head> <body> <h2>ナンバーズ3</h2> <div> <label for="numberInput">入力部:</label> <input type="number" id="input1" min="0" max="9"> <input type="number" id="input2" min="0" max="9"> <input type="number" id="input3" min="0" max="9"> </div> <div> <input type="button" value="当選結果を確認する" onclick="functionAnswer()"> </div> <div> <p>USER: <span id="answer1"></span><span id="answer2"></span><span id="answer3"></span></p> <p>COM: <span id="answer4"></span><span id="answer5"></span><span id="answer6"></span></p> <p>当選結果: <span id="answerBox"></span></p> </div> <script type="text/javascript" src="../javascript_test/js/javascript_17_5.js"></script> </body> (JavaScript) var input1 = document.getElementById('input1'); var input2 = document.getElementById('input2'); var input3 = document.getElementById('input3'); var inputArray = [input1, input2, input3]; var answer1 = document.getElementById('answer1'); var answer2 = document.getElementById('answer2'); var answer3 = document.getElementById('answer3'); var answer4 = document.getElementById('answer4'); var answer5 = document.getElementById('answer5'); var answer6 = document.getElementById('answer6'); var answerBox = document.getElementById('answerBox'); function functionAnswer() { answer1.innerHTML = input1.value; answer2.innerHTML = input2.value; answer3.innerHTML = input3.value; answer4.innerHTML = Math.floor(Math.random(0, 9) * 10); answer5.innerHTML = Math.floor(Math.random(0, 9) * 10); answer6.innerHTML = Math.floor(Math.random(0, 9) * 10); var answerUserArray = [answer1, answer2, answer3]; var answerComputerArray = [answer4, answer5, answer6]; if answerUserArray.every(answerComputerArray) { answerBox.innerHTML = "ストレート"; } else if answerUserArray.some(answerComputerArray) { answerBox.innerHTML = "ボックス"; } else { answerBox.innerHTML = "ハズレ"; } }
試したこと
javascriptの配列some, everyを使用しようとしましたが、知識が足りずできませんでした。おそらくこれがあればいけるのではないかと思っています。
**(追記箇所)
条件が曖昧で申し訳ありません。「実現したいこと」「コード(JavaScriptの部分、自分でやってみたところ)」を追記致しました。まだ情報が不足しているようでしたら、ご指摘いただけると助かります。よろしくお願いいたします。
**
(資料)
HTMLページ
[0から9の数値][0から9の数値][0から9の数値]←入力部
[当たっているかな]←ボタンがクリックされたら入力の内容チェックし判断し可否を表示する
USER:[数値][数値][数値]←ユーザーが入力した数値
COM:[数値][数値][数値]←コンピューターの抽選した数値
当選結果:ストレートorボックスorハズレ←結果を表示