欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JavaScript中隨機(jī)數(shù)方法?Math.random()

 更新時(shí)間:2022年06月04日 09:33:43   作者:??Shrimpsss????  
這篇文章主要介紹了JavaScript中隨機(jī)數(shù)方法?Math.random(),文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下

前言:

我們學(xué)習(xí)項(xiàng)目的時(shí)難免遇到一些問題,比如;遇到一個(gè)功能需要隨機(jī)返回多條不重復(fù)的數(shù)據(jù),也可以是拿了就用,下次再需要時(shí)已經(jīng)忘記如何使用了;雖然接觸使用的場景很少,但也有必要單獨(dú)拿出來講一講

定義

js中的生成隨機(jī)數(shù)操作是基于 Math 方法下的 random() 方法

Math.random() : 隨機(jī)獲取范圍內(nèi)的一個(gè)數(shù) ( 精確到小數(shù)點(diǎn)后14位 )

基礎(chǔ)寫法

隨機(jī)生成一個(gè) 0 ~ 1 之間的數(shù):

?// 語法: Math.random()

生成指定范圍內(nèi)的隨機(jī)數(shù)

生成 小于 m 的隨機(jī)數(shù)(含小數(shù)):

?// 語法: Math.random() * m
?Math.random() * 60 

生成 小于m 的整數(shù):

可以使用 parseInt 去除小數(shù)點(diǎn)的形式將生成的隨機(jī)數(shù)轉(zhuǎn)換為整數(shù)

?// 語法: Math.random() * m
?parseInt(Math.random()* 60)

生成向下取整的隨機(jī)整數(shù):

使用Math方法下的floor屬性進(jìn)行舍棄小數(shù)向下取整, 當(dāng)然你也可以使用 Math.ceil 向上取整

?// 語法: Math.random() * m
?Math.floor(Math.random()* 60)

生成兩個(gè)數(shù)之間的隨機(jī)數(shù)

表示生成 n~m+n 之間的隨機(jī)數(shù):

?// 語法: Math.random() * m + n
?// 范圍:n ~ m+n
?Math.random() * 10 + 8 ?// 8 ~ 18 

生成 -n~m+n 之間的隨機(jī)數(shù):

?// 語法: Math.random() * m - n 
?// 范圍:-n ~ m+n
?Math.random() * 10 - 8 ?// -8 ~ 2

生成 -m~0 之間的隨機(jī)數(shù):

?// 語法: Math.random() * m - m 
?// 范圍:-m - 0
?Math.random() * 10 - 10 ?// -10 - 0

生成 n~m 之間的隨機(jī)整數(shù)(包括n與m):

?// 語法: Math.floor(Math.random() * (m - n)) + n
?// 范圍:n ~ m
?Math.floor(Math.random() * (8 - 100)) + 100 ?// 8~100

常用場景

看完語法,接下來講一個(gè)我項(xiàng)目中用到的場景 - 熱榜,將每次隨機(jī)獲取3條不重復(fù)的熱門數(shù)據(jù)

function random_pick(list, target) {
    /**
     * @param {number[]} list - 數(shù)據(jù)
     * @param {number} target - 獲取的條數(shù)
     */

    // 1. 保存熱榜
    let hot = [];
    // 2. 保存熱榜的索引
    for (let index = 0; index < list.length; index++) {
        // 3. 如果熱榜采集完,則直接返回
        if (hot.length >= target) return hots(hot);
        // 4. 每次隨機(jī)取出一個(gè)數(shù)
        let r = Math.floor(Math.random() * list.length);
        // 5. 如果隨機(jī)數(shù)不在熱榜里,則加入熱榜
        if (hot.indexOf(r) == -1) {
            hot.push(r);
        }
    }
    // 熱榜過濾函數(shù)
    function hots(params) {
        return params.map(item => { return list[item] });
    }
}
let r = random_pick([22, 33, 44, 55, 66, 77, 88], 3)

到此這篇關(guān)于JavaScript中隨機(jī)數(shù)方法 Math.random()的文章就介紹到這了,更多相關(guān)JS - Math.random() 內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • JavaScript實(shí)現(xiàn)計(jì)數(shù)器基礎(chǔ)方法

    JavaScript實(shí)現(xiàn)計(jì)數(shù)器基礎(chǔ)方法

    這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)計(jì)數(shù)器的基礎(chǔ)方法
    ,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • 二叉樹的非遞歸后序遍歷算法實(shí)例詳解

    二叉樹的非遞歸后序遍歷算法實(shí)例詳解

    這篇文章主要介紹了二叉樹的非遞歸后序遍歷算法實(shí)例,需要的朋友可以參考下
    2014-02-02
  • js實(shí)現(xiàn)加載頁面就自動(dòng)觸發(fā)超鏈接的示例

    js實(shí)現(xiàn)加載頁面就自動(dòng)觸發(fā)超鏈接的示例

    下面小編就為大家?guī)硪黄猨s實(shí)現(xiàn)加載頁面就自動(dòng)觸發(fā)超鏈接的示例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-08-08
  • Echarts折線圖實(shí)現(xiàn)一條折線顯示不同顏色的方法

    Echarts折線圖實(shí)現(xiàn)一條折線顯示不同顏色的方法

    這篇文章主要給大家介紹了關(guān)于Echarts折線圖實(shí)現(xiàn)一條折線顯示不同顏色的相關(guān)資料,Echarts的折線圖可以通過設(shè)置series中的itemStyle屬性來改變折線的顏色,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-02-02
  • echarts如何實(shí)現(xiàn)動(dòng)態(tài)曲線圖(多條曲線)

    echarts如何實(shí)現(xiàn)動(dòng)態(tài)曲線圖(多條曲線)

    這篇文章主要介紹了echarts如何實(shí)現(xiàn)動(dòng)態(tài)曲線圖(多條曲線),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • javascript HTML5 canvas實(shí)現(xiàn)打磚塊游戲

    javascript HTML5 canvas實(shí)現(xiàn)打磚塊游戲

    這篇文章主要介紹了基于javascript HTML5 canvas實(shí)現(xiàn)打磚塊游戲的具體實(shí)現(xiàn)代碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-04-04
  • 如何利用ES6進(jìn)行Promise封裝總結(jié)

    如何利用ES6進(jìn)行Promise封裝總結(jié)

    這篇文章主要介紹了如何利用ES6進(jìn)行Promise封裝總結(jié),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-02-02
  • JavaScript實(shí)現(xiàn)獲取網(wǎng)絡(luò)通信進(jìn)度

    JavaScript實(shí)現(xiàn)獲取網(wǎng)絡(luò)通信進(jìn)度

    這篇文章主要為大家詳細(xì)介紹了如何使用Fetch?API和XMLHttpRequest(XHR)來執(zhí)行網(wǎng)絡(luò)請(qǐng)求,并重點(diǎn)說明如何獲取這兩種方法的網(wǎng)絡(luò)請(qǐng)求進(jìn)度,感興趣的可以了解下
    2023-12-12
  • 代碼詳解javascript模塊加載器

    代碼詳解javascript模塊加載器

    本篇文章通過代碼示例給大家詳細(xì)分析了javascript基礎(chǔ)內(nèi)容模塊加載器的相關(guān)知識(shí)點(diǎn),一起學(xué)習(xí)下。
    2018-03-03
  • 理解javascript中的MVC模式

    理解javascript中的MVC模式

    這篇文章主要為大家介紹了javascript中的MVC模式,MVC是一種軟件架構(gòu)模式,一般把軟件模式分為三部分,本文就針對(duì)MVC模式的三部分進(jìn)行講解,感興趣的小伙伴們可以參考一下
    2016-01-01

最新評(píng)論