vue实现在线抽奖

本文详细解析了基于Vue.js的抽奖应用中单次抽奖逻辑的实现,通过概率权重分配完成抽奖过程。同时介绍了如何利用HTTP请求加载和保存抽奖配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

预览:http://icelily.xyz/lottery

完整项目:https://github.com/tinslychong/vue_lottery

部分实现与代码:
1、单次抽奖逻辑:

    lotteryOne() {
      var pos = [];
      pos.push(0);
      var count = 0;
      for (var i = 0; i < this.tableData.length; i++) {
        count += parseFloat(this.tableData[i].value);
        pos.push(count);
      }
      var ran = Math.random() * 100;
      for (var i = 0; i < pos.length - 1; i++) {
        if (ran >= pos[i] && ran < pos[i + 1]) {
          break;
        }
      }
      return this.tableData[i];
    }
  },

这里tabledata的数据结构为{name:xx,value:xx}
value为物品的概率(百分比)

2、载入和保存配置
载入:

  onLoadConfig() {
  this.$reqs.get(this.selected_config+"?"+Math.random()*1000).then(resp => {
          _this.tableData = resp.data.data;
        });
    },
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值