JavaScript 随机正数或负数

新手上路,请多包涵

我需要创建一个随机的 -1 或 1 来乘以一个已经存在的数字。问题是我当前的随机函数生成 -1、0 或 1。最有效的方法是什么?

原文由 Ash Blue 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1k
2 个回答

不要使用您现有的功能 - 只需调用 Math.random() 。如果 < 0.5 则为 -1,否则为 1:

 var plusOrMinus = Math.random() < 0.5 ? -1 : 1;

原文由 ziesemer 发布,翻译遵循 CC BY-SA 3.0 许可协议

我一直很喜欢

Math.round(Math.random()) * 2 - 1

因为它有点道理。

  • Math.round(Math.random()) 会给你0或1

  • 将结果乘以 2 将得到 0 或 2

  • 然后减去 1 得到 -1 或 1。

直觉的!

原文由 majman 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题