La semana pasada, necesitaba encontrar una manera de generar un id único para crear nombres para los archivos del teléfono en sistemas IOS (no estoy segura porque me venian en undefined).
De todos modos, buscando en Google, en San Google y San StackOverflow, encontré esta pequeña y hermosa funcion. Super sencilla.
Todo lo que tenes que hacer es invocarla, donde tenes que generar el id, y pasar la longitud deseada del id.
Y ¡magia! Devuelve un id/nombre/dato hecho con letras y números (en este ejemplo es asi!)
const makeRandomId= (length) => {
let result = ''
const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'
for (let i = 0; i < length; i++ ) {
result += characters.charAt(Math.floor(Math.random() * characters.length));
}
return result;
}
👉 charAt: El método charAt() devuelve el carácter en un índice especificado en una cadena.
👉 floor(): El método floor() redondea un número hacia abajo al entero más cercano, y devuelve el resultado.
👉 random(): Math.random() devuelve un número aleatorio entre 0 (inclusive), y characters.length (excluyente):
Math.random() usado con Math.floor() puede ser usado para devolver enteros aleatorios (como esta en el ejemplo!)
Eso es todo por ahora :)
Latest comments (2)
😛
Tomá en cuenta que al estar basado en
Math.random()
se te puede dar el caso en el que dos IDs salgan iguales.Idealmente si precisás ids únicos podés usar librerías como nanoid, o podes tambien usar alguna basada en "seed" (le das una base y genera ids que nunca se van a repetir tomando esa base, que tiene que ser unica y secreta). Uno de los tips más comunes en programación es "don't roll your own cryptographic", básicamente porque a menos que te dediques específicamente a la rama de criptografía, lo más probable es que cometas errores de seguridad severos, y mal que bien los IDs únicos tienen bases en criptografía.
Saludos!