按键精灵-随机获取不重复内容

一般利用数组功能可以实现万能随机, 也就是不管你想随机取什么内容, 都可以实现, 现在需求多了不重复, 也就意味着每次随机都要针对数组内容进行删除, 按键精灵中删除数组元素的方法是对其赋值为null即可删除, 但是删除后, 下标不会变化, 所以我们还需要让他的下标移动, 具体方法如下:

//初始化随机种子, 只要调用一次, 但是这里强烈推荐使用紫猫插件的随机功能 Randomize Dim 随机数组 = {"aaa", "bbb", "ccc", "ddd", "eee"} //测试效果, 其实这也是一种洗牌方法, 把随机出来的加入到新数组中, 数组元素顺序就打乱了. TracePrint 取不重复随机(随机数组) TracePrint 取不重复随机(随机数组) TracePrint 取不重复随机(随机数组) TracePrint 取不重复随机(随机数组) TracePrint 取不重复随机(随机数组) TracePrint 取不重复随机(随机数组) //参数为数组, 返回一个随机到的内容 Function 取不重复随机(数组) If Ubound(数组) = -1 then TracePrint "数组里没有元素了, 返回null" Exit Function End If Dim 下标 = Random(0, Ubound(数组)) Dim 随机内容 = 数组(下标) //这是一个关键循环, 要把后面元素覆盖前面元素, 实现移动数组元素 For i = 下标 to Ubound(数组) 数组(i) = 数组(i+1) Next 取不重复随机 = 随机内容 End Function //随机获取一个数字函数, 同样强烈推荐使用紫猫插件的随机取数 Function Random(min, max) Random = Int((max-min+1)*Rnd()+min) End Function
经验分享 程序员 微信小程序 职场和发展