目前JavaScript里面还没有现成的方法可以实现这个简单地需求,我们就需要自己写代码了。
在js中有个函数:Math.random() 这个函数可以生成 [0,1) 的一个随机数。
我们的简单的改造一下,就可以满足需求了。


一、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;
	}


GitHub : https://github.com/fxiaoyu97

微信公众号 : 三更编程菌

作者:卡洛小豆