js动态生成唯一id的三种方法

那么我们就来讲解一下JS动态生成唯一ID的三种方法。

1. 使用Math.random()

使用Math.random()方法可以生成一个随机数,因为它返回0到1之间的伪随机数,所以我们可以将其与当前的时间戳相乘,生成一个不太可能重复的唯一ID。

function generateUniqueID() {
  let uniqueID = Math.floor(Math.random() * Date.now()).toString(36);
  return uniqueID;
}

console.log(generateUniqueID());//e5qiktmb8r

2. 使用UUID

UUID是通用唯一识别码的缩写,使用UUID主要目的是为了让分布式系统中的节点能够彼此识别,而生成UUID时需要考虑各种因素,避免重复。因此,uuid的生成算法比随机数更复杂。通过引入UUID.js或者使用ES6的写法,我们可以很方便地使用它生成唯一的ID。

//使用uuid.js
const { v4: uuidv4 } = require('uuid');
function generateUniqueID() {  
  return uuidv4().replace(/-/g, '');  //去掉横线
}

console.log(generateUniqueID());//8d5aa024185946d4a3083b6f8992af50

//ES6
function generateUniqueID(){
  let uuid = ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, c => 
    (c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString(16)
  );
  return uuid;
}

console.log(generateUniqueID());//d45568e0a85a44988c4c28af0356b2d1

3. 使用时间戳和计数器

这种方式可以说是基于时间戳和计数器实现的。我们可以使用下面的函数生成唯一ID:

var _idCounter = 0;
function generateUniqueID() {
  var ts = new Date().getTime().toString();
  var parts = ts.split("").reverse();
  var id = "";
  for(var i = 0; i < 5; ++i) {
    var index = Math.floor(Math.random() * parts.length);
    id += parts[index];
  }
  id += (++_idCounter);
  return id;
}

console.log(generateUniqueID());//120807967512931

以上三种方法就是生成唯一ID的三种方法,根据你的需求选择适合你的方法即可。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:js动态生成唯一id的三种方法 - Python技术站

(0)
上一篇 2023年6月10日
下一篇 2023年6月10日

相关文章

  • JavaScript插件化开发教程(五)

    JavaScript插件化开发教程(五)是关于模板的进一步讲解,主要包括以下部分: 一、模板引擎 1.1 什么是模板引擎 模板引擎是一种将数据和模板结合起来生成HTML文档的工具。在JavaScript插件开发中,模板引擎是一个非常重要的部分,在将数据渲染到HTML中时起到了至关重要的作用。 常见的模板引擎有:Handlebars、Mustache、ejs、…

    JavaScript 2023年5月18日
    00
  • javascript this指向相关问题及改变方法

    JavaScript中的this指向问题一直是令新手程序员困扰的问题。在JavaScript中,this通常指向当前函数所属的对象,但是在不同的上下文中,this的值有可能会发生变化。下面让我们逐步了解JavaScript中this指向的相关问题及如何改变this的指向。 1. JavaScript中this的指向 this在JavaScript中的指向有以…

    JavaScript 2023年6月11日
    00
  • ajax和jsonp跨域的原理本质详解

    针对“Ajax和JSONP跨域的原理本质”这一话题,我准备了以下的完整攻略。 一、同源策略 同源策略,是一种安全策略,它限制了一个源(域名、协议、端口)下的文档或脚本如何能与另一个源(域名、协议、端口)下的资源进行交互。 二、JSONP 跨域 JSONP是一种跨域的技术手段,发起JSONP请求时,服务器端返回指定格式的数据,并在响应中将需要返回的数据作为参数…

    JavaScript 2023年6月11日
    00
  • JavaScript实现字符雨效果

    JavaScript实现字符雨效果 在网页上实现字符雨效果,可以通过在HTML的body元素中添加一个全屏的canvas元素,然后使用JavaScript编写一个动画效果,不断更新canvas中的字符颜色和位置,从而实现字符雨效果。 准备工作 在HTML中添加一个全屏的canvas元素 <canvas id="matrix-canvas&qu…

    JavaScript 2023年5月28日
    00
  • extjs关于treePanel+chekBox全部选中以及清空选中问题探讨

    ExtJS关于TreePanel+CheckBox全部选中以及清空选中问题探讨 1. CheckBox的状态问题 在使用ExtJS的TreePanel时,节点如果要使用CheckBox,需要在NodeInterface中添加配置: Ext.define(‘MyApp.model.MyTreeNode’, { extend: ‘Ext.data.TreeMod…

    JavaScript 2023年6月11日
    00
  • Android应用开发中WebView的常用方法笔记整理

    以下是详细讲解“Android应用开发中WebView的常用方法笔记整理”的完整攻略: 简介 在Android应用开发中,WebView是常见的一个控件,它可以在应用中展示网页、HTML内容或其他的网络资源。在本篇攻略中,我们将讲解Android应用开发中WebView的常用方法和技巧。 基本用法 首先,让我们来看一下WebView的基本用法。 添加权限 在…

    JavaScript 2023年6月11日
    00
  • Javascript Date getUTCDay() 方法

    JavaScript 中的 getUTCDay() 方法用于获取 Date 对象中的星期几,以 UTC 时间为准。在本教程中,我们将详细介绍 getUTCDay() 方法的使用方法。 getUTCDay() 方法的基本语法如下: date.getUTCDay() 其中,date 是要获取星期几的 Date 对象。 以下两个示例说明: 示例一:使用 getUT…

    JavaScript 2023年5月11日
    00
  • js中Array.forEach跳出循环的方法实例

    在JavaScript中,使用Array.forEach()方法可以遍历数组,并对每一个元素执行相应的操作。在实际开发中,有时候需要在某些条件下跳出forEach循环,本文将详细讲解该如何在forEach循环中跳出循环。 方法一:使用try-catch语句 在forEach中使用try-catch语句,当需要跳出循环时,通过throw new Error()…

    JavaScript 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部