欢迎光临散文网 会员登陆 & 注册

AE表达式教程 - 用集合set生成不重复随机数

2022-03-30 10:49 作者:我是若比邻  | 我要投稿

之前根据小伙伴的需求,录制了个生成不重复随机数的视频。

AE表达式教程-生成不重复的随机数

AE表达式教程-4行4列不重复随机数

表达式稍微有点长,有点复杂。

昨天看到集合set,就试了一下,用集合生成不重复的随机数似乎更简单。


注意:在使用set集合之前,请先将表达式引擎改成javascript。


set集合

ES6 提供了新的数据结构 Set。它类似于数组,但是成员的值都是唯一的,没有重复的值。

上面定义了一个集合,这个集合里有两个4,结果只会显示一个4,重复的就会自动被删除。

我们就可以用这个特性来生成不重复的随机数。


假设我们要生成一个4位不重复随机数,表达式可以这样写:

但是这样会出现,随机数1跟其他随机数相同的情况,比如随机数1跟随机数2相同,这样就只剩下3个随机数了。


我们可以多给set里添加几个随机数,然后从其中取出4个来。

set的结果是个数组,用数组的slice()方法可以截取需要的位数。


最终随机数的表达式如下:

集合里不一定全放随机数,也可以放一些数字。

这样就能得到不重复的随机数:

这段表达式就没什么难度了,就是往集合里放几个随机数,然后从里面取出4个来。


这些是es6的写法,关于es6,有很多教程,有兴趣的可以去看看。

附上一个es6学习链接:

https://es6.ruanyifeng.com/?search=map&x=0&y=0#docs/set-map


AE表达式教程 - 用集合set生成不重复随机数的评论 (共 条)

分享到微博请遵守国家法律