Mehrere Möglichkeiten zum Generieren eindeutiger IDs in JavaScript

Mehrere Möglichkeiten zum Generieren eindeutiger IDs in JavaScript

Mögliche Lösungen

1. Math.random generiert Zufallszahlen in [0,1)

//Dieses Mal habe ich den generierten Wert ausgeführt: 0,5834165740043102 
Math.random();

2. Holen Sie sich den aktuellen Zeitstempel Date.now

//Jetzt ist der Zeitstempel 1482645606622
Datum.jetzt();

3. Konvertieren Sie Dezimalzahlen in andere Basiszeichenfolgen Number.toString

//1482645606622 in Binärzahl umwandeln: 10101100100110100100100001001000011011110 
(1482645606622).toString(2);

//In Hexadezimal umwandeln: 159349090de ObjectID in MongoDB ist eine 24-stellige Hexadezimalzahl (1482645606622).toString(16);

//Die maximal unterstützte Basis ist hexadezimal, mit den Zeichen 0-9a-z: ix48wvry 
(1482645606622).toString(36);

Verbesserte Version 1: Zufallszahl + toString()

1. Zufallszahlenversion

/**
 * Generieren Sie eine eindeutige ID
 */
Funktion GenNonDuplicateID(){
 return Math.random().toString()
}

//Generieren Sie eine ID ähnlich 0,1283460319177394
GenNonDuplicateID()

2. Zufallszahlenversion Hexadezimalversion

/**
 * Generieren Sie eine eindeutige ID
 */
Funktion GenNonDuplicateID(){
 gibt Math.random().toString(16) zurück
}

//Die Funktion generiert eine ID wie 0.c1615913fa915
GenNonDuplicateID()

3. Zufallszahlenversion Hexadezimalversion

/**
 * Generieren Sie eine eindeutige ID
 */
Funktion GenNonDuplicateID(){
 gibt Math.random().toString(36) zurück
}

//Die Funktion generiert eine ID wie 0.hefy7uw6ddzwidkwcmxkzkt9
GenNonDuplicateID()

4. Zufallszahlenversion Hexadezimalversion

/**
 * Generieren Sie eine eindeutige ID
 */
Funktion GenNonDuplicateID(){
 returniere Math.random().toString(36).substr(2)
}

//Die Funktion generiert eine ID ähnlich 8dlv9vabygks2cbg1spds4i
GenNonDuplicateID()

Zusammenfassen

Vorteile: Durch die Verwendung der Basiskonvertierung von toString können kürzere Zeichenfolgen erstellt werden, um einen größeren Bereich von

Nachteil: Die Verwendung einer Zufallszahl als ID führt bei steigender Anzahl der Verwendungen zwangsläufig zu zwei identischen IDs.

Verbesserte Version 2

1. Zeitstempel + Hexadezimalversion einführen

/**
 * Generieren Sie eine eindeutige ID
 */
Funktion GenNonDuplicateID(){
 let idStr = Date.now().toString(36)
 idStr += Math.random().toString(36).substr(2)
 Rückgabe-IDStr
}

//Die Funktion generiert eine ID ähnlich wie ix49sfsnt7514k5wpflyb5l2vtok9y66r
GenNonDuplicateID()

2. Einführung von Zeitstempel + Hexadezimalversion + Zufallszahlenlängenkontrolle

/**
 * Generieren Sie eine eindeutige ID
 */
Funktion GenNonDuplicateID(randomLength){
 let idStr = Date.now().toString(36)
 idStr += Math.random().toString(36).substr(2,randomLength)
 Rückgabe-IDStr
}

// GenNonDuplicateID(3) generiert eine ID ähnlich ix49wl2978w
GenNonDuplicateID(3)

Die ersten Ziffern der so generierten ID sind allerdings immer gleich.

3. Zeitstempel einführen + Hexadezimalzahl vor Zufallszahl stellen + Länge der Zufallszahl kontrollieren

/**
 * Generieren Sie eine eindeutige ID
 */
Funktion GenNonDuplicateID(randomLength){
 gibt Zahl zurück(Math.random().toString().substr(2,randomLength) + Date.now()).toString(36)
}
//GenNonDuplicateID() generiert eine ID ähnlich rfmipbs8ag0kgkcogc
GenNonDuplicateID()

Zusammenfassen

Nutzen Sie einfach den Zeitstempel, damit mehrere Personen gleichzeitig auf dieselben Daten zugreifen können. Durch das Hinzufügen von Zufallszahlen kann Eindeutigkeit erreicht werden. Plus benutzerdefinierte Länge, UUID ist flexibler.

Zusammenfassen

Universelle Lösung:

/**
 * Generieren Sie eine eindeutige ID
 * @param { Zahl } zufälligeLänge 
 */
Funktion getUuiD(randomLength){
 gibt Zahl zurück(Math.random().toString().substr(2,randomLength) + Date.now()).toString(36)
}

Oben finden Sie Einzelheiten zu mehreren Möglichkeiten, mit JavaScript eindeutige IDs zu generieren. Weitere Informationen zum Generieren eindeutiger IDs mit JavaScript finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM!

Das könnte Sie auch interessieren:
  • Javascript-Methode zum Generieren einer global eindeutigen Kennung (GUID, UUID)
  • Jede Komponente in extjs muss eine eindeutige ID haben, sonst tritt ein Fehler auf

<<:  Detaillierte Erläuterung der erzwungenen Freigabe belegter Ports unter Linux und der Methode zum Öffnen von Ports in der Linux-Firewall

>>:  Zusammenfassung der Betriebsaufzeichnungen zum Ändern der MyISAM-Speicher-Engine in Innodb in MySQL

Artikel empfehlen

Einführung und Analyse von drei Binlog-Formaten in MySQL

eins. Einführung in das Mysql Binlog-Format Das M...

Detaillierte Erklärung der Linux-RPM- und Yum-Befehle und -Verwendung

RPM-Paketverwaltung Ein Verpackungs- und Installa...

So legen Sie Listenstilattribute in CSS fest (lesen Sie einfach diesen Artikel)

Eigenschaften des Listenstils Es gibt 2 Arten von...

Tiefgreifendes Verständnis langer MySQL-Transaktionen

Vorwort: Dieser Artikel stellt hauptsächlich den ...

So aktivieren Sie das Root-Konto in Ubuntu 20.04

Nach der Installation von Ubuntu 20.04 gibt es st...

JSON (JavaScript Object Notation) in einem Artikel verstehen

Inhaltsverzeichnis JSON wird angezeigt JSON-Struk...

MySQL 8.0.20 Installations-Tutorial mit Bildern und Text (Windows 64-Bit)

1: Download von der offiziellen MySQL-Website htt...

JavaScript implementiert Tab-Leisten-Umschalteffekte

Hier ist ein Fall, den Frontend-Entwickler kennen...

Detaillierte Erklärung der Linux-Befehle und der Dateisuche

1. Führen Sie eine Dateinamensuche durch which (S...

Warum brauchen wir Map, wenn wir in JavaScript bereits Object haben?

Inhaltsverzeichnis 1. Behandeln Sie Objekte nicht...

Allgemeine Datumsvergleichs- und Berechnungsfunktionen in MySQL

Implementierung des Zeitvergleichs in MySql unix_...