【问题标题】:How to get purely unique number in javascript [duplicate]如何在javascript中获取纯粹唯一的数字[重复]
【发布时间】: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 的代码不起作用的原因相同:如果您在同一毫秒内多次调用该函数,您会得到相同的结果。

标签: javascript html


【解决方案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://stackoverflow.com/a/105074/5109911

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

【讨论】:

    猜你喜欢
    • 2019-06-02
    • 1970-01-01
    • 2022-06-27
    • 2012-06-30
    • 1970-01-01
    • 2017-04-12
    • 2016-11-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多