10 способов генерировать уникальные идентификаторы в JavaScript: ваше практическое руководство

В мире веб-разработки создание уникальных идентификаторов является распространенной задачей. Независимо от того, создаете ли вы учетные записи пользователей, генерируете случайные строки или назначаете идентификаторы элементам, важно иметь надежный метод генерации уникальных идентификаторов. В этой статье блога мы рассмотрим 10 различных способов создания уникальных идентификаторов в JavaScript, дополненных разговорными объяснениями и примерами кода. Итак, приступим!

  1. Date.now():
    Один простой метод создания уникального идентификатора — использование текущей отметки времени с помощью функции Date.now(). Этот метод возвращает количество миллисекунд, прошедших с 1 января 1970 года. Вот фрагмент кода для демонстрации:
const uniqueID = Date.now();
console.log(uniqueID); // Outputs something like: 1642525099387
  1. Math.random():
    Используя функцию Math.random(), вы можете сгенерировать случайное число с плавающей запятой от 0 до 1. Умножив его на большое число и преобразуя в целое число. даст вам уникальный идентификатор. Вот пример:
const uniqueID = Math.floor(Math.random() * 1000000);
console.log(uniqueID); // Outputs something like: 532456
  1. UUID (универсальный уникальный идентификатор):
    UUID — это 128-битные уникальные идентификаторы, которые широко используются в различных системах. В JavaScript доступно несколько библиотек для генерации UUID, например библиотека uuid. Вот пример генерации UUID с использованием библиотеки uuid:
const { v4: uuidv4 } = require('uuid');
const uniqueID = uuidv4();
console.log(uniqueID); // Outputs something like: 2a5d0b4d-7d7c-4d7e-bbfe-77d5a3f92b18
  1. Пользовательский счетчик.
    Вы можете создать собственный счетчик, который увеличивается каждый раз при создании нового идентификатора. Этот метод обеспечивает уникальность и позволяет контролировать формат генерируемых идентификаторов. Вот пример:
let counter = 0;
function generateID() {
  return `ID-${counter++}`;
}
const uniqueID = generateID();
console.log(uniqueID); // Outputs: ID-0
  1. nanoid:
    Библиотека nanoidпредоставляет быстрый и компактный метод создания уникальных идентификаторов настраиваемой длины. Он использует символы, удобные для URL-адресов, и подходит для создания коротких идентификаторов. Вот пример:
const { nanoid } = require('nanoid');
const uniqueID = nanoid(); // By default, generates a 21-character ID
console.log(uniqueID); // Outputs something like: 8M3D4r6z8nB2bU7Yh9SmC
  1. Crypto.getRandomValues():
    Для большей случайности вы можете использовать метод Crypto.getRandomValues(), который генерирует криптографически безопасные случайные значения. Вот пример создания уникального идентификатора с помощью этого метода:
const array = new Uint32Array(1);
window.crypto.getRandomValues(array);
const uniqueID = array[0];
console.log(uniqueID); // Outputs a random 32-bit integer
  1. ShortID:
    Библиотека shortidпредлагает компактный и удобный для URL-адресов подход к созданию уникальных идентификаторов. Он использует комбинацию временных меток, случайных чисел и пользовательских символов для обеспечения уникальности. Вот как вы можете его использовать:
const shortid = require('shortid');
const uniqueID = shortid.generate();
console.log(uniqueID); // Outputs something like: -Cj5wHd-
  1. Prefix + Math.random():
    Комбинируя префикс с методом Math.random(), вы можете создавать уникальные идентификаторы в определенном формате. Вот пример:
const prefix = 'USER';
const uniqueID = prefix + Math.random().toString(36).substr(2, 9);
console.log(uniqueID); // Outputs something like: USER9wffo0z2a
  1. Инициалы + Date.now():
    Если вам нужны короткие идентификаторы на основе временных меток, вы можете использовать инициалы вместе с методом Date.now(). Вот пример:
const initials = 'JS';
const uniqueID = initials + Date.now();
console.log(uniqueID); // Outputs something like: JS1642525099387
  1. Автоинкремент базы данных.
    Если вы работаете с базой данных, большинство баз данных предоставляют функцию автоматического приращения, которая генерирует для вас уникальные идентификаторы. Вы можете получить сгенерированный идентификатор из базы данных после вставки новой записи.

Создание уникальных идентификаторов в JavaScript — распространенное требование в веб-разработке. В этой статье мы исследовали десять различных методов: от использования временных меток и случайности до использования внешних библиотек и функций базы данных для генерации уникальных идентификаторов. Эти методы предлагают гибкость и возможности настройки для удовлетворения различных потребностей. Включив эти методы в свои проекты JavaScript, вы сможете обеспечить создание надежных и уникальных идентификаторов.