当前位置:首页 > JavaScript

js实现抽奖号码

2026-02-03 08:38:20JavaScript

实现抽奖号码的JavaScript方法

生成随机号码

使用Math.random()生成随机数,结合Math.floor()确保结果为整数。例如生成1-100的随机号码:

const randomNumber = Math.floor(Math.random() * 100) + 1;

确保不重复抽奖

使用Set数据结构存储已抽中的号码,避免重复:

const drawnNumbers = new Set();
function drawUniqueNumber(max) {
  if (drawnNumbers.size >= max) return null;

  let num;
  do {
    num = Math.floor(Math.random() * max) + 1;
  } while (drawnNumbers.has(num));

  drawnNumbers.add(num);
  return num;
}

批量生成抽奖号码

需要生成多个不重复的抽奖号码时,可以使用Fisher-Yates洗牌算法:

function generateLotteryNumbers(total, max) {
  const pool = Array.from({length: max}, (_, i) => i + 1);

  for (let i = pool.length - 1; i > 0; i--) {
    const j = Math.floor(Math.random() * (i + 1));
    [pool[i], pool[j]] = [pool[j], pool[i]];
  }

  return pool.slice(0, total);
}

可视化展示结果

将生成的号码动态显示在页面上:

function displayNumbers(numbers) {
  const container = document.getElementById('lottery-results');
  container.innerHTML = numbers.map(num => 
    `<div class="lottery-number">${num}</div>`
  ).join('');
}

完整示例代码

<!DOCTYPE html>
<html>
<head>
  <style>
    .lottery-number {
      display: inline-block;
      width: 50px;
      height: 50px;
      margin: 5px;
      background-color: #ff4757;
      color: white;
      text-align: center;
      line-height: 50px;
      font-size: 24px;
      border-radius: 50%;
    }
  </style>
</head>
<body>
  <button id="draw-btn">抽奖</button>
  <div id="lottery-results"></div>

  <script>
    const drawnNumbers = new Set();

    document.getElementById('draw-btn').addEventListener('click', () => {
      const num = drawUniqueNumber(100);
      if (num) {
        drawnNumbers.add(num);
        displayNumbers([...drawnNumbers]);
      } else {
        alert('所有号码已抽完!');
      }
    });

    function drawUniqueNumber(max) {
      if (drawnNumbers.size >= max) return null;

      let num;
      do {
        num = Math.floor(Math.random() * max) + 1;
      } while (drawnNumbers.has(num));

      return num;
    }

    function displayNumbers(numbers) {
      const container = document.getElementById('lottery-results');
      container.innerHTML = numbers.map(num => 
        `<div class="lottery-number">${num}</div>`
      ).join('');
    }
  </script>
</body>
</html>

js实现抽奖号码

标签: 号码js
分享给朋友:

相关文章

js实现

js实现

JavaScript 实现方法 JavaScript 是一种广泛使用的编程语言,适用于网页开发、服务器端编程以及移动应用开发。以下是几种常见的 JavaScript 实现方法: 网页交互功能 使用…

js实现轮播

js实现轮播

实现基础轮播效果 使用HTML结构创建轮播容器和图片元素: <div class="carousel"> <div class="carousel-inner">…

js实现拖拽

js实现拖拽

实现拖拽的基本步骤 使用JavaScript实现拖拽功能需要监听鼠标事件,包括mousedown、mousemove和mouseup。以下是实现的基本逻辑: const draggableEleme…

js实现图片上传

js实现图片上传

图片上传的基本实现 使用HTML的<input type="file">元素配合JavaScript的File API可以实现图片上传功能。HTML部分需要创建一个文件选择输入框和一个用于…

js实现日历

js实现日历

实现日历的基本思路 使用JavaScript实现日历的核心是动态生成日期表格,并处理月份切换逻辑。需要计算当前月的天数、起始星期几,并动态渲染到页面上。 获取当前日期信息 通过Date对象获取当前…

js实现选项卡

js实现选项卡

实现选项卡的基本思路 选项卡通常由一组标签和对应的内容面板组成。点击标签时,显示对应的内容面板,隐藏其他面板。实现这一效果需要结合HTML结构、CSS样式和JavaScript交互逻辑。 HTML结…