← flaviocopes.com

Generate random and unique strings in JavaScript

Published Jul 21 2018

Psssst! The 2023 WEB DEVELOPMENT BOOTCAMP is starting on FEBRUARY 01, 2023! SIGNUPS ARE NOW OPEN to this 10-weeks cohort course. Learn the fundamentals, HTML, CSS, JS, Tailwind, React, Next.js and much more! ✨

As I was building the platform for my online course I had the problem of generating a few thousands unique URLs.

Every person taking the course will be assigned a unique URL. The backend knows about all those URLs and maps a valid URL to the course content.

I wanted a unique URL because I can associate a URL to a purchase email.

In this way, I can avoid having a login, and at the same time having a separate URL for each person lets me block eventual abuse if that URL gets unintentionally or intentionally shared in the public.

So I set out to write my Node.js script.

I used the randomstring package, and I added numbers to a Set object until I got the number I wanted. Using a Set means every string will be unique because calling add and passing a duplicate string will silently do nothing.

I made a generateStrings() function that returns the set:

const generateStrings = (numberOfStrings, stringLength) => {
  const randomstring = require('randomstring')
  const s = new Set()

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

  return s
}

I can call it using

const strings = generateStrings(100, 20)

where 100 is the number of strings I want, and 20 is the length of each string.

Once we get the set, we can iterate over them using the values() Set method:

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


I write books for developers 👇🏼

© 2023 Flavio Copes Flavio Copes made in Italy 🇮🇹 using Notion to Site Notion to Site