java代码
/** *生成6位随机数 * @param size * @return */ public static Set<Integer> generateRandomArray(int size){ //size是生成随机数的位数 Set<Integer> set = new LinkedHashSet<Integer>(); //集合是没有重复的值,LinkedHashSet是有顺序不重复集合,HashSet则为无顺序不重复集合 Integer num = size; Integer range = 900000; Random ran = new Random(); while(set.size() < num){ Integer tmp = ran.nextInt(range) + 100000; //0-899999之间随机选一个数 set.add(tmp);//直接加入,当有重复值时,不会往里加入,直到set的长度为52才结束 } return set; }
js代码:
//生成随机数方法
//mynum:生成个数,mywei:生成位数。
var bossRand = function(mynum,mywei,callback){ var RandomArr = []; var RandomTotal= 0; function createRandom(num ,wei){ if(RandomArr.length==0){ RandomTotal = num; } var start = "1"; var end ="9"; var wint = parseInt(wei); for(var i=1;i<wint;i++){ start+="0" end+="0"; } for(var i=0;i<parseInt(num);i++){ var code =parseInt(Math.random()*parseInt(end)+parseInt(start)); var str = ","+RandomArr.toString()+","; if(str.indexOf(","+code+",")==-1){ RandomArr.push(code); } } //Remove duplication var cha = RandomTotal-RandomArr.length; if(cha<=0){ callback(RandomArr) RandomArr=[]; RandomTotal=0; return; }else{ createRandom(cha,wei) } } createRandom(mynum,mywei); } //调用方法,遍历元素赋值 $("#workOrderCode").blur(function () { var noHead = $("#workOrderCode").val() + "-"; if($("#workOrderCode").val() != null && $("#workOrderCode").val() != ""){ var arrr = []; bossRand(13,6,function (arr) { for (var i = 0; i < arr.length; i++) { arrr[i] = arr[i]; } }) $.each($(".randomTestCode"), function (i,dom) { $(dom).val(noHead + arrr[i]) }); }else if($("#workOrderCode").val() == null || $("#workOrderCode").val() == ""){ $.each($(".randomTestCode"), function (i,dom) { $(dom).val("") }); } })