Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/448.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 以下示例之间的差异(随机数)_Javascript - Fatal编程技术网

Javascript 以下示例之间的差异(随机数)

Javascript 以下示例之间的差异(随机数),javascript,Javascript,我无法理解以下两个例子之间的区别: var numbers = ['one', 'two', 'three']; 例1: console.log(numbers[Math.floor(Math.random() * numbers.length - 1) + 1]) 例2: console.log(numbers[Math.floor(Math.random() * numbers.length)]) 下面是一个快速分解,以及在试图理解此类问题时应如何推理: Math.random() -

我无法理解以下两个例子之间的区别:

var numbers = ['one', 'two', 'three'];
例1:

console.log(numbers[Math.floor(Math.random() * numbers.length - 1) + 1])
例2:

console.log(numbers[Math.floor(Math.random() * numbers.length)])

下面是一个快速分解,以及在试图理解此类问题时应如何推理:

Math.random() -> outputs number in the [0, 1) range (0 <= x < 1)
names.length = 3
Math.floor() -> rounds down or removes any trailing decimals (0.9 -> 0, 1.245 -> 1)
第二个例子:

console.log(numbers[Math.floor(Math.random() * numbers.length)])

-> Math.floor((0 <= x < 1) * 3)
-> Math.floor(0 <= x < 3)

Possible indices are of the set { 0, 1, 2 }
console.log(数字[Math.floor(Math.random()*numbers.length)])

->Math.floor((0 Math.floor)(0第一个示例永远不会选择
“一”
。编辑哦,等等,我会通过运行它来获取:)检查您自己。
var numbers=['one','two','three'];console.log(numbers[Math.floor(Math.random()*numbers.length-1)+1])console.log(numbers[Math.floor(Math.random()*numbers.length)])输出:一个输出:一个
对。问题的实际意义是什么?你想达到什么?我试图理解两者之间的区别以及为什么会起作用…我应该在某一点上得到数字[-1],但我不…对吗?
数学。随机
范围是
0≤ x<1
@GabrielePetrioliFixed@kugi很乐意帮忙。欢迎来到SO!
console.log(numbers[Math.floor(Math.random() * numbers.length)])

-> Math.floor((0 <= x < 1) * 3)
-> Math.floor(0 <= x < 3)

Possible indices are of the set { 0, 1, 2 }