【问题标题】:I'm trying to use random function in Javascript?我正在尝试在 Javascript 中使用随机函数?
【发布时间】:2012-03-29 15:26:59
【问题描述】:
var x = 1 + Math.Random() % 9;
if (x==1)
    // do something
else if (x==2) 
    // do something else

我在 C++ 中使用这一行 — (1 + Math.Random() % 9) — 来获取 1 到 9 之间的数字,但在 JavaScript 中我得到了不同的结果。

【问题讨论】:

  • 注意是Math.random 而不是Math.Random(注意小写r)。

标签: javascript random


【解决方案1】:

Math.random() 返回一个介于01 之间的值,因此您需要使用乘法来代替模运算符。

1 + (Math.random() * 9);

最后,你应该四舍五入或.floor()那个值

var x = Math.floor( 1 + ( Math.random() * 9 ) );

或者,更短

var x = ~~( 1 + ( Math.random() * 9 ) );

【讨论】:

  • 请注意,您在 Random 的第一个示例中使用大写字母,请使用小写字母 ;-)
  • @SimonEdström:哦,是的,谢谢,永远不要复制和粘贴(注意我自己)。
【解决方案2】:

JavaScript 中没有 Math.Random() 函数。这是Math.random()。注意大写。

要获得某个最小值和最大值之间的随机数,请执行以下操作:

var min = 1, max = 9;
Math.floor(Math.random() * (max - min + 1)) + min;

延伸阅读: https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/random

【讨论】:

    【解决方案3】:

    在 Javascript 中,Math.random 函数返回一个介于 0 和 1 之间的数字。如果您想获得一个介于 1 和 9 之间的数字,则必须稍微处理一下。

    var number = ((Math.random() * 10) | 0) % 9 + 1
    

    【讨论】:

      【解决方案4】:

      这会给你一个介于 0 和 9 之间的结果

      Math.floor(Math.random()*9) 
      

      顺便说一下,jQuery 是一个 javascript 框架。 Math 是一个原生的 javascript 函数

      【讨论】:

        猜你喜欢
        • 2020-11-27
        • 1970-01-01
        • 2017-12-12
        • 1970-01-01
        • 2018-04-03
        • 1970-01-01
        • 1970-01-01
        • 2022-07-21
        • 2022-06-16
        相关资源
        最近更新 更多