Javascript: 6 из 49 или другой выбор чисел из набора
Какая-то старая штучка, оставшаяся от какого-то выбора "6 из 49", как в советской лотерее, жалко выбрасывать, пусть будет.
Код примерно как здесь, только на яваскрипте, без замыканий и this.id, зато простой.
Количество выбираемых чисел читается из первого элемента (до слова "из"), количество чисел, из которых выбираем - из второго (предельное значение 50).
Числа выбираются "по кругу", то есть, первое не станет больше второго, а второе сбросится в единицу по достижении верхнего предела.
Ниже показаны скрипт в работе и исходник.
Кликните здесь или по любому из чисел
6
из
49
<script type="text/javascript"> function numbers (idn,idm,idres) { var numbercount=parseInt(document.getElementById(idn).innerHTML); var maxnumbers=parseInt(document.getElementById(idm).innerHTML); var arr = new Array (numbercount); var value,duplicate,j; for (var i = 0; i < numbercount; i++) { for ( ; ; ) { value = 1 + Math.floor(Math.random()*maxnumbers); duplicate= 0; for ( j = 0; j < i; j++) { if (value == arr[j]) { duplicate = 1; break; } } if (!duplicate) { break; } } arr[i] = value; } var output = ''; for (var i = 0; i < numbercount; i++) { output += arr[i] + (i < numbercount-1 ? ' ':''); } document.getElementById(idres).innerHTML = output; } function getCount (idn,idm,idres) { var n=parseInt(document.getElementById(idn).innerHTML); n++; var maxnumbers=parseInt(document.getElementById(idm).innerHTML); if (n>maxnumbers) n=1; document.getElementById(idn).innerHTML = n.toString(); numbers (idn,idm,idres); } function getMax (idn,idm,idres) { var m=parseInt(document.getElementById(idm).innerHTML); m++; if (m>50) { m=1; document.getElementById(idn).innerHTML = m.toString(); } document.getElementById(idm).innerHTML = m.toString(); numbers (idn,idm,idres); } </script> <noscript> <div align="center"><p>Извините, для работы приложения нужен включённый Javascript</p></div> </noscript> <style type="text/css"> .lottonumber { color: white; background: #2980B9; display: inline-block; text-align: center; margin: 0; line-height: 35px; width: 35px; height: 35px; } .lottotext { color: black; display: inline-block; text-align: center; margin: 0; line-height: 35px; width: 35px; height: 35px; } .lottoresult { color: #009900; text-align: center; margin: 0; line-height: 35px; height: 35px; } </style> <div id="lottoresults" class="lottoresult" onclick="numbers('numbercount','maxnum','lottoresults');"> Кликните здесь или по любому из чисел </div> <div align="center"> <span id="numbercount" class="lottonumber" onClick="getCount('numbercount','maxnum','lottoresults');">6</span> <span class="lottotext">из</span> <span id="maxnum" class="lottonumber" onClick="getMax('numbercount','maxnum','lottoresults');">49</span> </div>
07.09.2017, 16:46 [2064 просмотра]