/

在JavaScript中生成隨機而唯一的字符串

在JavaScript中生成隨機而唯一的字符串

在構建我的在線課程平台時,我遇到了生成數千個唯一URL的問題。

每個參與課程的人都會被分配一個唯一的URL。後端知道所有這些URL並將有效的URL映射到課程內容上。

我希望有一個唯一的URL,因為我可以將URL關聯到購買郵件。

這樣,我就可以避免使用登錄功能,同時讓每個人都有一個單獨的URL,以便在URL意外或故意被公開分享時,我可以阻止濫用。

於是我開始寫我的Node.js腳本。

我使用了randomstring這個包,並將數字添加到Set對象中,直到我得到想要的數量。使用Set意味著每個字符串都是唯一的,因為調用add並傳遞重複的字符串不會產生任何效果。

我創建了一個名為generateStrings()的函數來返回這個Set:

1
2
3
4
5
6
7
8
9
10
const generateStrings = (numberOfStrings, stringLength) => {
const randomstring = require('randomstring')
const s = new Set()

while (s.size < numberOfStrings) {
s.add(randomstring.generate(stringLength))
}

return s
}

可以這樣調用它:

1
const strings = generateStrings(100, 20)

其中100是我想要的字符串數量,20是每個字符串的長度。

一旦我們獲得了這個Set,我們可以使用values()Set方法來遍歷它們:

1
2
3
for (const value of strings.values()) {
console.log(value)
}

tags: [“JavaScript”, “random string”, “unique strings”, “Set”]