使用js生成一个抽奖的算法
时间: 2024-04-30 09:23:06 浏览: 56
JS做的一个抽奖
以下是一个简单的抽奖算法示例:
```javascript
function lottery() {
// 奖品列表
const prizes = [
{ name: '一等奖', weight: 1 },
{ name: '二等奖', weight: 2 },
{ name: '三等奖', weight: 3 },
{ name: '安慰奖', weight: 4 },
];
// 总权重
const totalWeight = prizes.reduce((sum, prize) => sum + prize.weight, 0);
// 随机生成一个数作为抽奖结果
const randomNum = Math.floor(Math.random() * totalWeight);
// 根据抽奖结果匹配奖品
let currentWeight = 0;
for (const prize of prizes) {
currentWeight += prize.weight;
if (randomNum < currentWeight) {
return prize.name;
}
}
// 如果遍历完奖品列表还没有匹配到奖品,则返回 null
return null;
}
```
该算法中,每个奖品都有一个权重,所有奖品的权重总和即为总权重,抽奖结果是在 0 到总权重之间随机生成的一个数。然后根据这个抽奖结果匹配到对应的奖品。每个奖品的中奖概率与其对应的权重成正比例关系。
阅读全文