如何在javascript中获取纯粹唯一的数字[重复]

Posted

技术标签:

【中文标题】如何在javascript中获取纯粹唯一的数字[重复]【英文标题】:How to get purely unique number in javascript [duplicate] 【发布时间】:2016-12-17 20:13:41 【问题描述】:

我必须为我创建的某些对象创建唯一键(React key prop 需要),其中键可以是任何随机字符串或数字,但在程序生命周期中每次生成时都必须是真正唯一的。

我尝试使用new Date().getTime() 作为键,但遇到了多个对象在循环中创建它们时被分配相同键的问题。

只要程序正在运行,是否有一个函数可以在每次调用时返回纯粹唯一的东西,还是我必须实现自己的计数器?

【问题讨论】:

如果它只需要“只要程序正在运行”就必须是唯一的,那么只实现一个计数器会比生成 GUID 简单得多并且性能更好。 var nextKey = (function() var i=0; return function() return i++; )();(当你需要一个 id 时,你只需调用 nextKey()。) 我正在扩展您的方法!你可以试试这个。 function getUUID() var n = new Date().getTime(); var m = new Date(); var o = m.getMilliseconds(); var uuid = n * o; return uuid; @MavenMaverick - 这不起作用的原因与 OP 的代码不起作用的原因相同:如果您在同一毫秒内多次调用该函数,您会得到相同的结果。 【参考方案1】:

您可以创建一个 UUID:

function guid() 
  function s4() 
    return Math.floor((1 + Math.random()) * 0x10000)
      .toString(16)
      .substring(1);
  
  return s4() + s4() + '-' + s4() + '-' + s4() + '-' +
    s4() + '-' + s4() + s4() + s4();

原答案:https://***.com/a/105074/5109911

替代方案: https://jsfiddle.net/briguy37/2MVFd/

【讨论】:

以上是关于如何在javascript中获取纯粹唯一的数字[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何从包含 JavaScript 中重复项的数组中获取唯一值数组? [复制]

如何获取数组中的唯一值[重复]

如何在 JavaScript 中获取当前 URL 的目录部分?

如何获取只有唯一数字的列表? (Python)

如何从 JavaScript 中的字符串中获取所有数字? [复制]

如何在JavaScript中获取当前URL的目录部分?