var damage = Math.max(Math.floor(Math.random()* max)+1,min)这里的第一个'Math.max'和最后',min'是什么意思

问题描述 投票:1回答:3
var damage = Math.max(Math.floor(Math.random() * max)+1, min); 

首先Math.max和最后,min在这里是什么意思。请解释整行。

javascript random numbers
3个回答
0
投票

Math.max是一个函数,当传递可变数量的数字时,返回最大数字:

console.log(Math.max(1, 2, 3));

你的代码中的mindamage可以达到的最小数量 - 因此它可以作为(伪代码):

set damage to the maximum number out of:
    A random number between 0 and 1, multiplied by max, rounded down,
    or min;

0
投票

Math是javascript中的一个构建对象,具有方法和属性,这里[Math.max][2]用于查找最大的数字。 Math.floor和Math.random也是可用的方法

为了便于理解,我将代码分解为多行

function findMax(max, min) {
  let findRandom = Math.random() * max; // generate a random number
  // if it is a decimal number get the previous whole number
  let findLower = Math.floor(findRandom);
  // add one with the generated whole number
  let addOne = findLower + 1;
  // find the maximum between two numbers, one is generated & another is 
  // supplied as argument
  let damage = Math.max(addOne, min)
  return damage;
}
console.log(findMax(4, 1))

0
投票

如果你在Math.random查找MDN

Math.random()函数返回0-1范围内的浮点伪随机数(包括0,但不包括1),在该范围内具有近似均匀的分布 - 然后您可以将其缩放到所需范围。

所以在这里,范围是max,你正在采取表达Math.floorMath.random() * max,然后加1。

Math.floor会将生成的数字四舍五入到小于或等于给定结果的最大整数。因此,如果Math.random() * max结果说5.95Math.floor将产生5

然后在最后我们找到上一步的结果数和min变量的最大值,并将结果分配给damage变量。

© www.soinside.com 2019 - 2024. All rights reserved.