前端開發(fā)之JS生成32位隨機(jī)數(shù)的方法舉例
前言
在前端開發(fā)過程中,關(guān)于JS邏輯相關(guān)的使用相比都不陌生,尤其是在日常開發(fā)中使用到的常用的邏輯內(nèi)容,如倒計時的使用、點(diǎn)擊時間放重復(fù)點(diǎn)擊、生成隨機(jī)數(shù)等等,這些都是非常常用的內(nèi)容。那么本篇博文就來分享一下關(guān)于JS生成32隨機(jī)數(shù)的方法,該知識點(diǎn)是實(shí)際開發(fā)必備知識點(diǎn),值得收藏,記錄歸納一下,方便后期查閱使用。
隨機(jī)數(shù)概念
隨機(jī)數(shù)是專門的隨機(jī)試驗的結(jié)果。在統(tǒng)計學(xué)的不同技術(shù)中需要使用隨機(jī)數(shù),比如在從統(tǒng)計總體中抽取有代表性的樣本的時候,或者在將實(shí)驗動物分配到不同的試驗組的過程中,或者在進(jìn)行蒙特卡羅模擬法計算的時候等等。產(chǎn)生隨機(jī)數(shù)有多種不同的方法。這些方法被稱為隨機(jī)數(shù)發(fā)生器。隨機(jī)數(shù)最重要的特性是:它所產(chǎn)生的后面的那個數(shù)與前面的那個數(shù)毫無關(guān)系。
使用場景
在前端開發(fā)中,關(guān)于隨機(jī)數(shù)生成的實(shí)際業(yè)務(wù)場景,大概有以下幾個方面:在支付的時候需要生成支付流水號(主要是微信支付,一般是32位隨機(jī)數(shù)),在集成一些第三方登錄時候需要傳遞一個32位隨機(jī)數(shù)(如中國移動獲取當(dāng)前手機(jī)號的業(yè)務(wù)場景需要隨機(jī)數(shù)),以及生成uuid或者后臺需要的唯一標(biāo)識(也是32位隨機(jī)數(shù))。
示例說明
廢話不多說,這里直接來分享一下實(shí)際生成32位隨機(jī)數(shù)的示例代碼,如下所示:
示例一:生成32位隨機(jī)流水號
/*默認(rèn)去掉了容易混淆的字符oOLl,9gq,Vv,Uu,I1*/ var $chars = 'ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678'; var maxPo = $chars.length; var randomNum = ''; for (var i = 0; i < 32; i++) { randomNum += $chars.charAt(Math.floor(Math.random() * maxPo)); } console.log("randomNum:",randomNum)
或者 生成32位隨機(jī)流水號(以函數(shù)形式來提現(xiàn),大寫字母)
function getRandom() { var array = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"], randomNum = ""; for(var i = 0; i < 32; i++) { randomNum += array[parseInt(Math.random() * 36)]; } return randomNum; }
示例二:傳給后臺一個隨機(jī)的唯一標(biāo)識的參數(shù)(32位隨機(jī)數(shù),小寫字母)。
function getNum(){ var chars = ['0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z']; var randomNum = ""; for(var i=0;i<32;i++){ var id = parseInt(Math.random()*61); randomNum += chars[id]; } return randomNum; }
引申
上面介紹的是比較簡單的隨機(jī)生成32位隨機(jī)數(shù)的方法,那么再來看一下其他方式的生成隨機(jī)數(shù)的方法,具體示例如下所示:
示例一:使用randomString,val表示長度,默認(rèn)32位
function randomString(val) { val = val || 32; var chars = "ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678", var maxPo = chars.length, randomNum = ""; for (i = 0; i < val; i++) { randomNum += chars.charAt(Math.floor(Math.random() * maxPo)); } return randomNum; } alert(randomString(32));
示例二:生成從100000~999999的隨機(jī)數(shù)
function getRandomNum(min, max) { var range = max - min; var rand = Math.random(); return(min + Math.round(rand * range)); } var num = getRandomNum(10000, 999999); alert(num);
示例三:對已經(jīng)定義過的數(shù)組字符集合進(jìn)行隨機(jī)選取
var chars = ['0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z']; function generateMixed(num) { var result = ""; for(var i = 0; i < num ; i ++) { var id = Math.ceil(Math.random()*32); result += chars[id]; } return result; } alert(generateMixed(8));
示例四:生成隨機(jī)數(shù)之后轉(zhuǎn)換成36進(jìn)制,再進(jìn)行截取
//如Math.random() 生成隨機(jī)數(shù)字, eg: 0.123456789,又如.toString(36) 轉(zhuǎn)化成36進(jìn)制 : "0.4fzyo82mvyr”,再如.slice(-8); 截取最后八位 : "yo82mvyr"。
var str = Math.random().toString(36).slice(-7); alert(str);
示例五:把字符串集合隨機(jī)排序,隨機(jī)輸出指定的長度
function randomString(num) { var str = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; var result = ''; for (var i = num; i > 0; --i) { result += str[Math.floor(Math.random() * str.num)]; } return result; } alert(randomString(7));
拓展
一般情況下,在前端開發(fā)中需要生成的都是32位隨機(jī)數(shù),但是也不排除其他的需求,如6位隨機(jī)數(shù)也有需求,具體的隨機(jī)生成6位數(shù)的操作如下所示:
<!-- 生成六位隨機(jī)數(shù) --> <script type="text/javascript"> var number = ''; for(var i = 0;i<6;i++) { number += Math.floor(Math.random()*10); } console.log(number); </script>
最后
通過本文關(guān)于前端開發(fā)中JS生成32隨機(jī)數(shù)的使用總結(jié)的介紹,如果認(rèn)真閱讀并且實(shí)踐示例,尤其是從事前端開發(fā)不久的開發(fā)者來說尤為重要,是一篇值得閱讀的文章,且在實(shí)際開發(fā)中也是必用知識點(diǎn),所以說這個知識點(diǎn)是必備的,重要性就不在贅述。歡迎關(guān)注,一起交流,共同進(jìn)步。
到此這篇關(guān)于前端開發(fā)之JS生成32位隨機(jī)數(shù)的文章就介紹到這了,更多相關(guān)JS生成32位隨機(jī)數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 使用js Math.random()函數(shù)生成n到m間的隨機(jī)數(shù)字
- Js生成隨機(jī)數(shù)/隨機(jī)字符串的方法小結(jié)【5種方法】
- js生成1到100的隨機(jī)數(shù)最簡單的實(shí)現(xiàn)方法
- JS生成某個范圍的隨機(jī)數(shù)【四種情況詳解】
- js生成隨機(jī)數(shù)的方法實(shí)例
- Javascript 生成指定范圍數(shù)值隨機(jī)數(shù)
- javascript生成不重復(fù)的隨機(jī)數(shù)
- js生成隨機(jī)數(shù)之random函數(shù)隨機(jī)示例
- javascript生成隨機(jī)數(shù)的方法
- JS簡單生成隨機(jī)數(shù)(隨機(jī)密碼)的方法
相關(guān)文章
使用Bootstrap Tabs選項卡Ajax加載數(shù)據(jù)實(shí)現(xiàn)
這篇文章主要介紹了使用Bootstrap Tabs選項卡Ajax加載數(shù)據(jù)實(shí)現(xiàn),以及遇到的問題,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-12-12JavaScript架構(gòu)前端不能沒有監(jiān)控系統(tǒng)原因
這篇文章主要為大家介紹了為什么前端不能沒有監(jiān)控系統(tǒng)的原因,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06IE6-IE9中tbody的innerHTML不能賦值的解決方法
這篇文章主要介紹了IE6-IE9中tbody的innerHTML不能賦值的解決方法,需要的朋友可以參考下2014-06-06JS數(shù)組的遍歷方式for循環(huán)與for...in
本節(jié)主要介紹了JS數(shù)組的遍歷方式for循環(huán)與for...in,需要的朋友可以參考下2014-07-07JS在IE和FF下attachEvent,addEventListener學(xué)習(xí)筆記
今天小弄了一下JS事件,主要說一下FF和IE兼容的問題2009-11-11extract-text-webpack-plugin用法詳解
這篇文章主要介紹了extract-text-webpack-plugin用法詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-02-02