不重复随机数生成

核心思路:

  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);

 

posted @ 2017-11-01 09:38  烟蓑雨笠卷单行  阅读(286)  评论(0编辑  收藏  举报