たとえばこういう感じとか。
input
要素はテキストなので parseInt
して比較しています。
join
は配列を引数の文字列で連結します。(同じ並びなら同じ文字列になるので「大当たり」)
アロー関数とか使っているのでわかりにくいかもしれないが、every
は配列要素すべてに引数の関数を実行してすべてが true
かどうかを判定していて、includes
は引数と同じ要素が配列に入っているかを判定している。
HTML
1 <input type="text" size="15" value="1" placeholder="0から9までの数値" id="number1">
2 <input type="text" size="15" value="2" placeholder="0から9までの数値" id="number2">
3 <input type="text" size="15" value="3" placeholder="0から9までの数値" id="number3">
4 <br />
5 <br />
6 <input type="button" value="当たっているかな" id="button">
7 <br />
8 <br />
9 <div id="USER">USER:</div>
10 <div id="COM">COM :</div>
11 <div id="result">当選結果:</div>
JavaScript
1 document . getElementById ( 'button' ) . addEventListener ( 'click' , function ( ) {
2 var number = [
3 parseInt ( document . getElementById ( 'number1' ) . value , 10 )
4 , parseInt ( document . getElementById ( 'number2' ) . value , 10 )
5 , parseInt ( document . getElementById ( 'number3' ) . value , 10 )
6 ] ;
7 var USER = document . getElementById ( 'USER' ) ;
8 var COM = document . getElementById ( 'COM' ) ;
9 var result = document . getElementById ( 'result' ) ;
10 var nums = [ /*0,*/ 1 , 2 , 3 /*,4,5,6,7,8,9*/ ] ; /* テストのため勝率を上げている */
11 var randnum = [
12 Math . floor ( Math . random ( ) * nums . length )
13 , Math . floor ( Math . random ( ) * nums . length )
14 , Math . floor ( Math . random ( ) * nums . length )
15 ] ;
16
17 USER . innerHTML += '[' + number . join ( '][' ) + ']' ;
18 COM . innerHTML += '[' + randnum . join ( '][' ) + ']' ;
19 if ( number . join ( '|' ) === randnum . join ( '|' ) ) {
20 result . innerHTML += '[大当たり]' ;
21 } else if ( number . every ( e => randnum . includes ( e ) ) ) {
22 result . innerHTML += '[当たり]' ;
23 } else {
24 result . innerHTML += '[はずれ]' ;
25 }
26 } , false ) ;
27 ` ` ` **動くサンプル:**[https://jsfiddle.net/wunq84rm/](https://jsfiddle.net/wunq84rm/)
28
29 ---
30
31 【input 要素 - HTML | MDN】( placeholder )
32 [https://developer.mozilla.org/ja/docs/Web/HTML/Element/Input#attr-placeholder](https://developer.mozilla.org/ja/docs/Web/HTML/Element/Input#attr-placeholder)
33
34 【parseInt() - JavaScript | MDN】
35 [https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/parseInt](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/parseInt)
36
37 【Array.prototype.join() - JavaScript | MDN】
38 [https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/join](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/join)
39
40 【アロー関数 - JavaScript | MDN】
41 [https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/arrow_functions](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/arrow_functions)
42
43 【Array.prototype.every() - JavaScript | MDN】
44 [https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/every](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/every)
45
46 【Array.prototype.includes() - JavaScript | MDN】
47 [https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/includes](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/includes)
48
49 ---
50
51 **追記:**
52
53 複数ミスがあったので修正。
54
55 ` ` ` JavaScript
56 document . getElementById ( 'button' ) . addEventListener ( 'click' , function ( ) {
57 var number = [
58 parseInt ( document . getElementById ( 'number1' ) . value , 10 )
59 , parseInt ( document . getElementById ( 'number2' ) . value , 10 )
60 , parseInt ( document . getElementById ( 'number3' ) . value , 10 )
61 ] ;
62 var USER = document . getElementById ( 'USER' ) ;
63 var COM = document . getElementById ( 'COM' ) ;
64 var result = document . getElementById ( 'result' ) ;
65 var nums = [ 0 , 1 , 2 , 3 /*,4,5,6,7,8,9*/ ] ; /* テストのため勝率を上げている */
66 var randnum = [
67 Math . floor ( Math . random ( ) * nums . length )
68 , Math . floor ( Math . random ( ) * nums . length )
69 , Math . floor ( Math . random ( ) * nums . length )
70 ] ;
71
72 USER . innerHTML += '[' + number . join ( '][' ) + ']' ;
73 COM . innerHTML += '[' + randnum . join ( '][' ) + ']' ;
74 if ( number . join ( '|' ) === randnum . join ( '|' ) ) {
75 result . innerHTML += '[大当たり]' ;
76 } else if ( number . sort ( ) . join ( '|' ) === randnum . sort ( ) . join ( '|' ) ) { /* 並び替えてチェックに変更 */
77 result . innerHTML += '[当たり]' ;
78 } else {
79 result . innerHTML += '[はずれ]' ;
80 }
81 } , false ) ;
82 ` ` ` ** 動くサンプル: ** [ https : / / jsfiddle . net / wunq84rm / 2 / ] ( https : / / jsfiddle . net / wunq84rm / 2 / )