簡體   English   中英

Math.random數組長度+1?

[英]Math.random array length +1?

我不明白這段代碼中的內容:

vars.randAnim = anims[Math.floor(Math.random()*(anims.length + 1))];

假設我們有一個新的Array ,有5個元素,所以從索引0到索引4

然后讓我們說Math.random()返回1.所以,我們得到了1*5的底線,但我的Array中不存在5個索引,另外我們添加了一個“+1”

為何+1? 我原以為與“-1”恰好相反。

Math.random不返回1,它返回0到1之間的值Math.floor基本上截斷了值的小數。

因此,如果Math.random返回0.3984753005206585並將其乘以4則得到1.593901202082634 ,在Math.floor之后變為1

當您想從數組中獲取隨機值時,將Math.random乘以長度,因此它將返回介於0和長度之間的值(但絕不會是長度)。

上述代碼中的anims.length + 1不正確。

代碼錯了(如Rocket所說)。 它應該是

Math.floor(Math.random()*(anims.length))

但是推理也有一個缺陷:Math.random()不能返回“1”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM