前端实现一个抽奖程序,5位参与者的姓名保存到数组中以弹窗的形式随机抽取一位显示输出,一直到所有的参与者抽到为止
时间: 2024-02-18 19:02:51 浏览: 25
好的,这是一个简单的前端抽奖程序的实现方法:
HTML部分:
```html
<button onclick="startLottery()">开始抽奖</button>
```
JavaScript部分:
```javascript
// 参与者姓名数组
var participants = ["张三", "李四", "王五", "赵六", "钱七"];
// 开始抽奖函数
function startLottery() {
// 如果所有参与者都已经抽到,则提示抽奖已结束
if (participants.length === 0) {
alert("抽奖已结束!");
return;
}
// 随机抽取一个参与者
var index = Math.floor(Math.random() * participants.length);
var winner = participants[index];
// 在弹窗中显示获奖者姓名
alert("恭喜 " + winner + " 获得奖品!");
// 从参与者数组中移除已经抽中的参与者
participants.splice(index, 1);
}
```
以上代码会在点击“开始抽奖”按钮时触发 `startLottery()` 函数。该函数会随机抽取一个参与者并在弹窗中显示获奖者姓名。每抽取一个参与者,程序会将其从参与者数组中移除,直到所有参与者都已经抽到为止。
相关问题
前端实现一个抽奖程序,5位参与者的姓名保存到数组中,随机抽取一位显示输出,一直到所有的参与者抽到为止
好的,这个抽奖程序可以通过 JavaScript 实现。首先,我们先定义一个保存参与者姓名的数组 `names`,然后定义一个变量 `index`,用于保存已经抽到的参与者在数组中的索引。接下来,我们可以使用 `Math.random()` 方法生成一个随机数,将其乘以数组长度并向下取整,得到一个随机的索引值。然后,将该索引对应的参与者姓名输出,并将该索引值从数组中删除,同时将 `index` 加 1。当 `index` 的值等于数组长度时,表示所有参与者已经抽过奖,程序结束。下面是示例代码:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>抽奖程序</title>
</head>
<body>
<h1>抽奖程序</h1>
<button onclick="draw()">抽奖</button>
<p id="result"></p>
<script>
var names = ['张三', '李四', '王五', '赵六', '钱七'];
var index = 0;
function draw() {
if (index >= names.length) {
document.getElementById('result').innerHTML = '所有参与者已经抽过奖!';
return;
}
var randomIndex = Math.floor(Math.random() * names.length);
var winner = names[randomIndex];
names.splice(randomIndex, 1);
index++;
document.getElementById('result').innerHTML = '恭喜 ' + winner + ' 抽中奖品!';
}
</script>
</body>
</html>
```
在页面中添加一个 `button` 按钮和一个 `p` 标签用于显示抽奖结果,点击按钮即可抽奖。运行代码,可以看到每次随机抽取一个参与者姓名,并将其输出到页面中,直到所有参与者都抽过奖。
实现一个抽奖程序,5位参与者的姓名保存到数组中,随机抽取一位显示输出,一直到所有的参与者抽到为止
以下是一个实现抽奖程序的 JavaScript 代码:
```javascript
// 定义参与抽奖的名单
const names = ['小明', '小红', '小刚', '小美', '小李'];
// 定义已中奖名单
const winners = [];
// 抽奖函数
function drawWinner() {
// 如果所有人都已经中奖,则提示抽奖已经结束
if (winners.length === names.length) {
alert('抽奖已经结束!');
return;
}
// 循环随机抽取一个未中奖的名字
while (true) {
const randomIndex = Math.floor(Math.random() * names.length);
const randomName = names[randomIndex];
if (!winners.includes(randomName)) {
winners.push(randomName);
console.log(`中奖者:${randomName}`);
break;
}
}
}
// 循环抽奖直到所有人都中奖为止
while (winners.length < names.length) {
drawWinner();
}
```
在这个例子中,我们定义了一个 `names` 数组来存储参与抽奖的名单,一个 `winners` 数组来存储已中奖名单。我们使用了一个 `while` 循环来不断调用 `drawWinner()` 函数抽奖,直到所有人都中奖为止。每次调用 `drawWinner()` 函数,它会随机选出一个未中奖的名字,并将其添加到 `winners` 数组中,同时输出中奖者的姓名。当所有人都中奖后,程序会提示抽奖已经结束。