【发布时间】: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