js实现按座位号抽奖

最近一个项目需要实现一个按座位号抽奖的效果,抽奖现场有多个区域,抽奖时随机选取其中一个区域,再在这个区域中随机选取一排,最后在这排中随机选取一个座位号,区域、排号及座位号都不固定。

实现思路如下:

  1 <!DOCTYPE html>
  2 <html lang="zh-CN">
  3 <head>
  4     <meta charset="utf-8">
  5     <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6     <title>抽奖</title>
  7 </head>
  8 <body>
  9     <p id="result"></p>
 10     <script>
 11         // 获取两个数之间的随机数
 12         function getRandom(min, max){
 13             var num = min + Math.floor(Math.random() * (max - min + 1));
 14             return num;
 15         }
 16 
 17         // 列举可以参加抽奖的座位号(第几区,第几排,第几列)
 18         var obj = {
 19             '001': [
 20                 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
 21                 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
 22                 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
 23                 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
 24                 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
 25                 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
 26                 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
 27                 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
 28                 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 11]
 29             ],
 30             '002': [
 31                 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18],
 32                 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18],
 33                 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18],
 34                 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18],
 35                 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18],
 36                 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18],
 37                 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18],
 38                 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18],
 39                 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]
 40             ],
 41             '003': [
 42                 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13],
 43                 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15],
 44                 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16],
 45                 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18],
 46                 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19],
 47                 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20],
 48                 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21],
 49                 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18],
 50                 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
 51             ],
 52             '004': [
 53                 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
 54                 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
 55                 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
 56                 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13],
 57                 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13],
 58                 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]
 59             ],
 60             '006': [
 61                 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
 62                 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
 63                 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
 64                 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13],
 65                 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13],
 66                 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]
 67             ],
 68             '007': [
 69                 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15],
 70                 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17],
 71                 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18],
 72                 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19],
 73                 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21],
 74                 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22],
 75                 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23],
 76                 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20],
 77                 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]
 78             ],
 79             '008': [
 80                 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23],
 81                 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23],
 82                 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23],
 83                 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23],
 84                 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23],
 85                 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23],
 86                 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23],
 87                 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23],
 88                 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21]
 89             ],
 90             '009': [
 91                 [1, 2, 3, 4, 5],
 92                 [1, 2, 3, 4, 5],
 93                 [1, 2, 3, 4, 5],
 94                 [1, 2, 3, 4, 5],
 95                 [1, 2, 3, 4, 5],
 96                 [1, 2, 3, 4, 5],
 97                 [1, 2, 3, 4, 5],
 98                 [1, 2, 3, 4, 5],
 99                 [1, 2, 3, 4],
100             ],
101             'vip1': [
102                 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38],
103                 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38],
104                 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38],
105                 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38]
106             ],
107             'vip2': [
108                 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38],
109                 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38],
110                 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38],
111                 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38]
112             ],
113             'vip3': [
114                 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38],
115                 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38],
116                 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38],
117                 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38]
118             ]
119         };
120 
121         // 从对象中随机获取一个区域(索引)
122         var getAreaRandomIndex = getRandom(0, Object.keys(obj).length - 1);
123         // 再在上面得到的区域中再随机获取第几排(索引)
124         var getRowsRandomIndex = getRandom(0, obj[Object.keys(obj)[getAreaRandomIndex]].length - 1);
125         // 最后在上面得到的第几排中再随机获取第几号(索引)
126         var getcolsRandomIndex = getRandom(0, obj[Object.keys(obj)[getAreaRandomIndex]][getRowsRandomIndex].length -1);
127 
128         // ----- 通过上面索引得到确切的座位号 -----
129         // 得到第几区
130         var area = Object.keys(obj)[getAreaRandomIndex];
131         // 得到第几排
132         var rows = getRowsRandomIndex + 1;
133         // 得到第几列
134         var cols = obj[Object.keys(obj)[getAreaRandomIndex]][getRowsRandomIndex][getcolsRandomIndex];
135 
136         // 将结果显示在页面上
137         document.getElementById('result').innerHTML = '' + area + '区, 第' + rows + '排, 第' + cols + '';
138 
139     </script>
140 </body>
141 </html>

 

posted @ 2017-04-05 16:32  好大一碗猫  阅读(598)  评论(0编辑  收藏  举报