不重复随机数生成
核心思路:
1.将现有的数转成数组,用于生成随机数时剔除和当前重复的数,防止重复
2.通过起始数和结尾数生成源数的数组
3.用当前已有和源对比,剔除重复的,生成新的数组
4.通过最新生成的数组下标获取
var start = $("#dataStart").val(); var end = $("#dataEnd").val(); // 已经存在的数,这里需要处理,数据格式为数组 var existData = []; if (start == "" || end == "") { alert("请输入随机范围"); return; } start = parseInt(start); end = parseInt(end); // 根据随机数取值范围,生成数组originalArray var originalArray = []; var mark = 0; for (var i = start; i <= end;i++) { originalArray[mark] = i; mark++; } // originalArray数组中包含existData数组的元素删掉,防止生成随机数时重复 for (var i = 0;i < existData.length; i++) { for (var y = 0;y < originalArray.length; y++) { if (existData[i] == originalArray[y]) { originalArray.splice(y, 1); } } } if (originalArray.length == 0) { alert("生成随机数其他条目已包含,请扩大范围"); return; } // 生成随机的数组索引 var randomData = RandomNumBoth(0, (originalArray.length - 1)); //通过随机数组索引获取值 randomData = originalArray[randomData] $("#randomDom").val(randomData);