Possible solutions1. Math.random generates random numbers in [0,1)//This time I ran the generated value: 0.5834165740043102 Math.random(); 2. Get the current timestamp Date.now//Now the timestamp is 1482645606622 Date.now(); 3. Convert decimal to other base strings Number.toString//Convert 1482645606622 into binary: 10101100100110100100100001001000011011110 (1482645606622).toString(2); //Convert to hexadecimal: 159349090de ObjectID in MongoDB is a 24-digit hexadecimal number (1482645606622).toString(16); //The maximum base supported is hexadecimal, using characters 0-9a-z: ix48wvry (1482645606622).toString(36); Improved version 1: Random number + toString()1. Random number version/** * Generate a unique ID */ function GenNonDuplicateID(){ return Math.random().toString() } //Generate an ID similar to 0.1283460319177394 GenNonDuplicateID() 2. Random number version hexadecimal version/** * Generate a unique ID */ function GenNonDuplicateID(){ return Math.random().toString(16) } //The function will generate an ID like 0.c1615913fa915 GenNonDuplicateID() 3. Random number version hexadecimal version/** * Generate a unique ID */ function GenNonDuplicateID(){ return Math.random().toString(36) } //The function will generate an ID like 0.hefy7uw6ddzwidkwcmxkzkt9 GenNonDuplicateID() 4. Random number version hexadecimal version/** * Generate a unique ID */ function GenNonDuplicateID(){ return Math.random().toString(36).substr(2) } //The function will generate an ID similar to 8dlv9vabygks2cbg1spds4i GenNonDuplicateID() SummarizeAdvantages: Using toString's base conversion can achieve shorter strings to represent a wider range of Disadvantage: Using a random number as an ID will inevitably result in two identical IDs as the number of uses accumulates. Improved version 21. Introduce timestamp + hexadecimal version/** * Generate a unique ID */ function GenNonDuplicateID(){ let idStr = Date.now().toString(36) idStr += Math.random().toString(36).substr(2) return idStr } //The function will generate an ID similar to ix49sfsnt7514k5wpflyb5l2vtok9y66r GenNonDuplicateID() 2. Introduce timestamp + hexadecimal version + random number length control/** * Generate a unique ID */ function GenNonDuplicateID(randomLength){ let idStr = Date.now().toString(36) idStr += Math.random().toString(36).substr(2,randomLength) return idStr } // GenNonDuplicateID(3) will generate an ID similar to ix49wl2978w GenNonDuplicateID(3) However, the first few digits of the ID generated in this way are always the same. 3. Introduce timestamp + prepend hexadecimal to random number + control random number length/** * Generate a unique ID */ function GenNonDuplicateID(randomLength){ return Number(Math.random().toString().substr(2,randomLength) + Date.now()).toString(36) } //GenNonDuplicateID() will generate an ID similar to rfmipbs8ag0kgkcogc GenNonDuplicateID() SummarizeJust use the timestamp so that multiple people can access the same data at the same time. Adding random numbers can achieve uniqueness. Plus custom length, UUID is more flexible. SummarizeUniversal solution: /** * Generate a unique ID * @param { Number } randomLength */ function getUuiD(randomLength){ return Number(Math.random().toString().substr(2,randomLength) + Date.now()).toString(36) } The above are the details of several ways to generate unique IDs with JavaScript. For more information about how to generate unique IDs with JavaScript, please pay attention to other related articles on 123WORDPRESS.COM! You may also be interested in:
|
>>: Summary of the operation records of changing MyISAM storage engine to Innodb in MySQL
Table of contents Learning about WITH queries in ...
SQL UNIQUE constraint The UNIQUE constraint uniqu...
Test: Chrome v80.0.3987.122 is normal There are t...
Under the requirements of today's responsive ...
Table of contents Preface Laying the foundation p...
HTML meta tag HTML meta tags can be used to provi...
In some cases, the data in data needs to be reuse...
Table of contents Problem Description Principle A...
This article introduces blue-green deployment and...
Provide login and obtain user information data in...
Adding the extra_hosts keyword in docker-compose....
Table of contents cycle for for-in for-of while d...
Table of contents Preface Computed properties Int...
Table of contents 1. Overview of MySQL Logical Ar...
This article is mysql database Question 1 Import ...