JavaScript實現生成指定范圍隨機數和一個包含不重復數的隨機數組


目前JavaScript里面還沒有現成的方法可以實現這個簡單地需求,我們就需要自己寫代碼了。
在js中有個函數:Math.random() 這個函數可以生成 [0,1) 的一個隨機數。
我們的簡單的改造一下,就可以滿足需求了。隨機數參考文章鏈接:https://www.cnblogs.com/lanleiming/p/5409216.html


一、min ≤ r ≤ max

function RandomNumBoth(Min,Max){
            var Range = Max - Min;
            var Rand = Math.random();
            var num = Min + Math.round(Rand * Range); //四舍五入
            return num;
}

二、min ≤ r < max

function RandomNum(Min, Max) {
            var Range = Max - Min;
            var Rand = Math.random();
            var num = Min + Math.floor(Rand * Range);  //舍去
            return num;
}

生成一個包含不重復數的隨機數組

最先想到的問題就是去重吧,先生成一個數組,然后去重...是不是很麻煩,其實一開始,我們就可以把這個問題解決了。

    /** len生成數組的長度,min生成數最小值,max生成數的最大值 **/
    function randomArr(len,min,max){
		if((max-min)<len){ //可生成數的范圍小於數組長度
			return null;
		}
		var hash = [];

		while(hash.length<len){
			var num = randomNum(min,max);
			
			if(hash.indexOf(num)==-1){
			      hash.push(num);
			}
		}
		return hash;
	}
    


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM