teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

更新

2017/02/17 01:24

投稿

masaya_ohashi
masaya_ohashi

スコア9210

answer CHANGED
@@ -8,12 +8,20 @@
8
8
 
9
9
  このもう1個の部分をどうするかがいまのところはっきりしていませんので、単純に等分の確率で選べばいいのではないでしょうか。
10
10
 
11
- https://jsfiddle.net/2zo2s8g0/
11
+ [https://jsfiddle.net/2zo2s8g0/1/](https://jsfiddle.net/2zo2s8g0/1/)
12
12
  ```HTML
13
+ <button id="lotteryButton">
14
+ 抽選
15
+ </button>
16
+ <h3>
17
+ ひとまず全部抽選
18
+ </h3>
13
19
  <div id="pickups">
14
20
 
15
21
  </div>
16
- <hr>
22
+ <h3>
23
+ 優先度によって2個まで削減したもの
24
+ </h3>
17
25
  <div id="output">
18
26
 
19
27
  </div>
@@ -30,22 +38,25 @@
30
38
  {categoryName:"category8", percentage:20, value:"らりるれろ"},
31
39
  {categoryName:"category9", percentage:20, value:"わをん"}
32
40
  ];
41
+ function lottery() {
42
+ document.getElementById("pickups").innerHTML = "";
43
+ document.getElementById("output").innerHTML = "";
44
+ var pickup = [];
45
+ for(var index in table) {
46
+ var data = table[index];
47
+ if(data.percentage > Math.random() * 100) {
48
+ // あたり
49
+ pickup.push(data.value);
50
+ document.getElementById("pickups").innerHTML += data.value + "<br>";
51
+ }
52
+ }
53
+ if(pickup.length > 2) {
54
+ pickup = [pickup[0], pickup[Math.floor(Math.random() * (pickup.length - 1)) + 1]];
55
+ }
56
+ for(var index in pickup) {
57
+ document.getElementById("output").innerHTML += pickup[index] + "<br>";
58
+ }
59
+ }
33
60
 
34
- document.getElementById("pickups").innerHTML = "";
35
- document.getElementById("output").innerHTML = "";
61
+ document.getElementById("lotteryButton").addEventListener("click", lottery);
36
- var pickup = [];
37
- for(var index in table) {
38
- var data = table[index];
39
- if(data.percentage > Math.random() * 100) {
40
- // あたり
41
- pickup.push(data.value);
42
- document.getElementById("pickups").innerHTML += data.value + "<br>";
43
- }
44
- }
45
- if(pickup.length > 2) {
46
- pickup = [pickup[0], pickup[Math.floor(Math.random() * (pickup.length - 1)) + 1]];
47
- }
48
- for(var index in pickup) {
49
- document.getElementById("output").innerHTML += pickup[index] + "<br>";
50
- }
51
62
  ```