這篇“JavaScript中隨機數方法Math.random()怎么使用”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“JavaScript中隨機數方法Math.random()怎么使用”文章吧。
js中的生成隨機數操作是基于 Math
方法下的 random()
方法
Math.random() : 隨機獲取范圍內的一個數 ( 精確到小數點后14位 )
隨機生成一個 0 ~ 1 之間的數:
// 語法: Math.random()
生成 小于 m 的隨機數(含小數):
// 語法: Math.random() * m Math.random() * 60
生成 小于m 的整數:
可以使用 parseInt
去除小數點的形式將生成的隨機數轉換為整數
// 語法: Math.random() * m parseInt(Math.random()* 60)
生成向下取整的隨機整數:
使用Math
方法下的floor
屬性進行舍棄小數向下取整, 當然你也可以使用 Math.ceil
向上取整
// 語法: Math.random() * m Math.floor(Math.random()* 60)
表示生成 n~m+n 之間的隨機數:
// 語法: Math.random() * m + n // 范圍:n ~ m+n Math.random() * 10 + 8 // 8 ~ 18
生成 -n~m+n 之間的隨機數:
// 語法: Math.random() * m - n // 范圍:-n ~ m+n Math.random() * 10 - 8 // -8 ~ 2
生成 -m~0 之間的隨機數:
// 語法: Math.random() * m - m // 范圍:-m - 0 Math.random() * 10 - 10 // -10 - 0
生成 n~m 之間的隨機整數(包括n與m):
// 語法: Math.floor(Math.random() * (m - n)) + n // 范圍:n ~ m Math.floor(Math.random() * (8 - 100)) + 100 // 8~100
看完語法,接下來講一個我項目中用到的場景 - 熱榜,將每次隨機獲取3條不重復的熱門數據
function random_pick(list, target) { /** * @param {number[]} list - 數據 * @param {number} target - 獲取的條數 */ // 1. 保存熱榜 let hot = []; // 2. 保存熱榜的索引 for (let index = 0; index < list.length; index++) { // 3. 如果熱榜采集完,則直接返回 if (hot.length >= target) return hots(hot); // 4. 每次隨機取出一個數 let r = Math.floor(Math.random() * list.length); // 5. 如果隨機數不在熱榜里,則加入熱榜 if (hot.indexOf(r) == -1) { hot.push(r); } } // 熱榜過濾函數 function hots(params) { return params.map(item => { return list[item] }); } } let r = random_pick([22, 33, 44, 55, 66, 77, 88], 3)
以上就是關于“JavaScript中隨機數方法Math.random()怎么使用”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。