阅读送书抽奖?玩转抽奖游戏,js-tool-big-box工具库新上抽奖功能

先讨论一个问题,你做软件工作是为了什么?从高中选专业,就喜欢上了软件开发?还是当初毕业不知道干啥,不喜欢自己的专业,投入软件开发的怀抱?还是干着干着别的,突然觉得互联网行业真不赖,然后学了学,开始了软件开发生涯?

目录

[1 你真的很喜欢软件开发工作吗?](#1 你真的很喜欢软件开发工作吗?)

[2 我开发的一个好玩的JS工具](#2 我开发的一个好玩的JS工具)

[3 功能介绍](#3 功能介绍)

[4 工具使用](#4 工具使用)

[4.1 引入工具包](#4.1 引入工具包)

[4.2 定义备选人员名单](#4.2 定义备选人员名单)

[4.3 调用抽奖方法](#4.3 调用抽奖方法)

[4.4 使用方法总结](#4.4 使用方法总结)


1 你真的很喜欢软件开发工作吗?

那么你喜欢自己的职业吗?热爱吗?哈哈,是不是灵魂拷问。思考这个问题很简单,试想一下,你上班时间除了开发,摸鱼时间在干什么?下了班,你在做什么?遇到外面的事物,你是否会用互联网思维,或者用你的软件思维去思考这件事呢?如果你觉得自己有钱有闲了,你会不会通过自己的本职工作去出发,展开一些事情呢?还是另辟蹊径,觉得自己开个店更合适,完全抛却了自己的本职软件行当?思考清了这些事情,你应该就明白,自己是不是真的很喜欢自己的软件开发工作了。

2 我开发的一个好玩的JS工具

先抛开上面那个灵魂拷问,我发现大家都在CSDN上阅读送书,这个活动挺好的,既使得自己的博客撰写更有动力,又帮助图书作者做了推广,而且帮助自己的粉丝们赢得了福利,最重要的是,大家都开心了。人或者嘛,开心最重要哇!对吧。武大郎如果当初可以好好的和西门庆聊一聊,哪会有那么多事呢。

等活动结束了,大家会给粉丝送书,如果这个时候,可以有个抽奖工具,就像每周一三六摇奖那样的工具,那该有多完美。我曾经好多次,盯着屏幕上的摇奖直播视频,看啊看,然后关掉视频,我不禁感叹,这个摇奖工具真是差劲,摇不到我的心坎上呢咋就。

所以,看见大家送书,我就心头一热,在js-tool-big-box 这个npm工具包上,新增了一个抽取幸运读者的功能。

3 功能介绍

  1. 我们先获取备选用户名单,这里可以简单做一个字符串,或者数组数据,把用户名单加进去;
  2. 这样就可以获取备选名单人数,有了人数,就可以从人数中得到一个随机值,取出这个随机值;
  3. 如果只是从中获取1个幸运读者,就这结束了;
  4. 如果需要获取多个,那么就需要把这个幸运读者从数组中删除,继续寻找剩余读者中的随机值;
  5. 这样遍历几遍,就取到了需要个数的幸运读者;

4 工具使用

4.1 引入工具包

执行安装命令

npm i js-tool-big-box

项目中引入,对于抽奖功能,工具中提供了 dataBox的对象,可供调用

javascript 复制代码
import { dataBox } from 'js-tool-big-box';

4.2 定义备选人员名单

例如我们设定一个40人的备选名单,然后为了界面好看,我们还添加了幸运读者的变量,下面的代码一看就是vue写法,对吧

javascript 复制代码
data () {
    return {
      people: '张三0, 张三1, 张三2, 张三3, 张三4, 张三5, 张三6, 张三7, 张三8, 张三9, 张三10, 张三11, 张三12, 张三13, 张三14, 张三15, 张三16, 张三17, 张三18, 张三19, 张三20, 张三21, 张三22, 张三23, 张三24, 张三25, 张三26, 张三27, 张三27, 张三29, 张三30, 张三31, 张三32, 张三33, 张三34, 张三35, 张三36, 张三37, 张三38, 张三39, 张三40',
      luckPeople: [],
    }
  },

4.3 调用抽奖方法

抽奖功能方法名是luck,这是属于dataBox对象下的一个方法,

javascript 复制代码
this.luckPeople = dataBox.luck(peopleData, 3);

4.4 使用方法总结

|------|----------------|----------------------------------------------------|
| 方法名 | 返回值 | 入参 |
| luck | 根据第二个入参返回幸运获奖者 | 第一个参数必填,表示所有备选用户名单,传入的是一个数组; 第二个参数必填,表示需要从中选取几个幸运者 |

相关推荐
定栓26 分钟前
Webpack迁到Vite第一节:模块系统迁移:require → import
运维·前端·webpack
小熊在忙fpga35 分钟前
N32G430芯片的flash表示
前端·javascript·html
Data analyse45641 分钟前
App埋点版本兼容的字段迁移校验
大数据·运维·服务器·前端·数据库·数据分析
NC 王炸1 小时前
AI 做的便签,换个浏览器就没了?加一个导出按钮,把数据带走
javascript·ai编程·数据备份·localstorage·txt导出
todoitbo1 小时前
本来只想给内网开个口子,Natapp 却多给了一道防护
前端·javascript·vue.js·内网穿透·网络防护·natapp
会灭火的程序员1 小时前
SuperMap AgentX Server智能体接入WEB应用技术文档
前端·supermap·agentx·agentx server
CRMEB1 小时前
商品 SKU 设计,从简单规格到多规格踩过什么
java·前端·数据库·开源
Chloe.Zz1 小时前
一篇入门Agent
开发语言·前端·javascript
java1234_小锋1 小时前
【技术专题】HTML5 网页技术 - HTML5 表格标签
前端·html·html5
silvamux_1 小时前
4款新模型商务邮件翻译横评:0.98到0.46
android·java·javascript