AE表達式教程 - 用集合set生成不重復(fù)隨機數(shù)
之前根據(jù)小伙伴的需求,錄制了個生成不重復(fù)隨機數(shù)的視頻。
表達式稍微有點長,有點復(fù)雜。
昨天看到集合set,就試了一下,用集合生成不重復(fù)的隨機數(shù)似乎更簡單。
注意:在使用set集合之前,請先將表達式引擎改成javascript。
set集合
ES6 提供了新的數(shù)據(jù)結(jié)構(gòu) Set。它類似于數(shù)組,但是成員的值都是唯一的,沒有重復(fù)的值。
上面定義了一個集合,這個集合里有兩個4,結(jié)果只會顯示一個4,重復(fù)的就會自動被刪除。

我們就可以用這個特性來生成不重復(fù)的隨機數(shù)。
假設(shè)我們要生成一個4位不重復(fù)隨機數(shù),表達式可以這樣寫:
但是這樣會出現(xiàn),隨機數(shù)1跟其他隨機數(shù)相同的情況,比如隨機數(shù)1跟隨機數(shù)2相同,這樣就只剩下3個隨機數(shù)了。
我們可以多給set里添加幾個隨機數(shù),然后從其中取出4個來。
set的結(jié)果是個數(shù)組,用數(shù)組的slice()方法可以截取需要的位數(shù)。
最終隨機數(shù)的表達式如下:
集合里不一定全放隨機數(shù),也可以放一些數(shù)字。
這樣就能得到不重復(fù)的隨機數(shù):

這段表達式就沒什么難度了,就是往集合里放幾個隨機數(shù),然后從里面取出4個來。
這些是es6的寫法,關(guān)于es6,有很多教程,有興趣的可以去看看。
附上一個es6學習鏈接:
https://es6.ruanyifeng.com/?search=map&x=0&y=0#docs/set-map
標簽: