【问题标题】:Lodash.uniqueId always returns 1Lodash.uniqueId 总是返回 1
【发布时间】:2019-10-10 01:55:48
【问题描述】:

尝试使用lodash(版本4.17.11)

_.uniqueId() 总是返回 1 而不是随机的 3 位数字。

同样_.uniqueId('prefix') 总是返回prefix1

有问题吗?

【问题讨论】:

  • 你试过多次调用它吗?
  • "而不是随机的 3 位数字" 等等,你为什么要得到一个 随机 的三位数字呢?
  • 它说它给了你一个唯一的 ID,而不是一个三位数的ID。
  • 文档不建议您获取随机的三位数。这些只是示例。
  • works for me - 每次获取唯一号码

标签: javascript npm lodash


【解决方案1】:

lodash _.uniqueId() 给你一个唯一的 ID 就是这样。在执行脚本时,它永远不会两次给你相同的 ID(如果你重新启动脚本,它可以并且会给你相同的输出)但是没有随机数或没有指定的位数。尝试运行它。

_.uniqueId() //1
_.uniqueId() //2
_.uniqueId() //3

【讨论】:

  • 请注意,如果您在 Node 中运行代码并简单地重新启动服务器,它可能会两次给您相同的数字。因此不太适合数据库索引等。
  • @MilanVelebit 是的,它只是给你一个独特的序列。无法在不同的 Lodash 实例之间保持其唯一性。
  • @AlexanderLadonin 是的。如果你调用 _.uniqueId() 然后重新启动你的服务器,你将永远得到 1 回来。这是预期的行为。
  • @AlexanderLadonin 一点也不。试试这个npmjs.com/package/uniqid
  • 你也应该看看uuid
【解决方案2】:

如果你运行一个新的姿势,每次计数器基本上都会从 1 开始,因此你可能会得到 1。

你可以使用这个库uniqid,它每次都会给你一个新的随机生成的id。

import uniqid from 'uniqid';

console.log(uniqid()); // -> 4n5pxq24kpiob12og9
console.log(uniqid(), uniqid()); // -> 4n5pxq24kriob12ogd, 4n5pxq24ksiob12ogl

【讨论】:

    猜你喜欢
    • 2016-11-21
    • 2014-04-13
    • 2017-03-20
    • 2013-11-04
    • 2011-12-09
    • 2012-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多