js抽奖功能

需求
从数组中随机挑选中奖成员
js代码实现
let list = [‘王大’, ‘hhh’, ‘撒旦’, ‘是小甜甜’, ‘ghj4232’, ‘啊哦额’, ‘笔头3862’, ‘李鹏’, ‘阿兴’, ‘梦d’, ‘阿萨斯’, ‘Json’, ‘B塔’, ‘ss’]

// 抽3个
for(let i =0; i < 3; i ++) {
const random = Math.floor(Math.random() * list.length)

console.log(list[random])

// list.splice(random , 1)
list[random] = list[list.length - 1]
list.length--

}

在这里插入图片描述
说明
1:为什么不选择用splice?
大多数人一开始想法都会是splice,这是个很正确也很直观的理解。但是要注意splice是性能消耗很大的操作,如果抽奖池量级一大就会明显影响性能了

2:为什么给list[random]赋值,然后长度减一?
我们需要把中奖的用户剥离出去,然后把数组末尾的用户填进来,最后把整个数组的长度减一,这样下一轮遍历的时候,就是个全新的数组,而且对整个数组的改动是最小的,性能消耗最小

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值