JavaScript生成随机数字

工作的时候经常遇到使用一些假数据,例如数字、人名等。一个个敲太费劲,做个简单点的方法生成数字数据,喜欢的童鞋可以拿去用。

效果图如下:
在这里插入图片描述
代码如下:

<!DOCTYPE html>
<html lang=" ">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>随机数</title>

</head>
<style>
    * {
        margin: 0;
        padding: 0;
    }

    .box {
        position: relative;
        width: 100%;
        height: auto;
        display: flex;
        flex-direction: column;
        justify-content: space-between;
        align-items: center;
        background: #182F5D;
    }

    .box-item {
        width: 700px;
        height: 100px;
        margin-bottom: 10px;
    }

    .title {
        width: 100%;
        height: 50px;
        line-height: 50px;
        font-size: 18px;
        text-align: left;
        color: greenyellow;
    }

    .content {
        border: 1px #ccc solid;
        width: 100%;
        height: 50px;
        line-height: 50px;
        box-sizing: border-box;
        padding: 0 10px;
        color: #fff;
        word-wrap: break-word;
    }

    .div7 {
        height: 200px;
        width: 900px;
    }

    .div7 .content {
        height: 150px;
    }

    .check-box {
        width: 100%;
        height: 50px;
        display: flex;
        justify-content: space-between;
        align-items: center;
    }

    .check-box .check-item {
        width: 20%;
        height: 50px;
        float: left;
    }

    .check-box .check-item input {
        width: 50px;
        height: 20px;
    }

    .check-box .check-item option select {
        width: 50px;
        height: 20px;
    }

    .div7-content {
        width: 100%;
        height: 100px;
    }
</style>

<body>
    <div class="box">
        <div class="box-item">
            <div class="title">div1 要求(范围:0~100,个数:10,排序:不排序,重复:可重复)</div>
            <div class="content" id="div1"></div>
        </div>
        <div class="box-item">
            <div class="title">div2 要求(范围:1~100,个数:10,排序:不排序,重复:不重复)</div>
            <div class="content" id="div2"></div>
        </div>
        <div class="box-item">
            <div class="title">div3 要求(范围:1~100,个数:10,排序:升序,重复:可重复)</div>
            <div class="content" id="div3"></div>
        </div>
        <div class="box-item">
            <div class="title">div4 要求(范围:1~100,个数:10,排序:降序,重复:可重复)</div>
            <div class="content" id="div4"></div>
        </div>
        <div class="box-item">
            <div class="title">div5 要求(范围:168~200,个数:10,排序:升序,重复:不重复)</div>
            <div class="content" id="div5"></div>
        </div>
        <div class="box-item">
            <div class="title">div6 要求(范围:-168~200,个数:10,排序:升序,重复:不重复)</div>
            <div class="content" id="div6"></div>
        </div>
        <div class="box-item div7">
            <div class="title">div7 要求(自定义)</div>
            <div class="content">
                <div class="check-box">
                    <div class="check-item"> <label>最小值:</label><input type="text" id="minNumber"></div>
                    <div class="check-item"> <label>最大值:</label><input type="text" id="maxNumber"></div>
                    <div class="check-item"> <label>个数:</label><input type="text" id="math"></div>
                    <div class="check-item"> <label>排序:</label>
                        <select id="sort">
                            <option value="0">不排序</option>
                            <option value="1">升序</option>
                            <option value="2">降序</option>
                        </select>
                    </div>
                    <div class="check-item"> <label>重复:</label>
                        <select id="repeat">
                            <option value="0">可重复</option>
                            <option value="1">不重复</option>
                        </select>
                    </div>
                    <div class="check-item">
                        <button onclick="submit()">生成</button>
                        <button onclick="reset()">重置</button>
                    </div>
                </div>
                <div class="div7-content">
                    <textarea id="div7" style="width: 100%; height: 100px;border: 0;"></textarea>
                </div>
            </div>
        </div>
    </div>
    <div id="sring"></div>
</body>
<script>
    div1();
    div2();
    div3();
    div4();
    div5();
    div6();

    function div1() {
        let arr = [];
        for (i = 0; i < 10; i++) {
            arr[i] = (Math.floor(Math.random() * 101))
        }
        document.querySelector("#div1").innerHTML = arr;
    }

    function div2() {
        let arr = [];
        for (i = 0; i < 10; i++) {
            let num = Math.floor(Math.random() * 100) + 1;
            if (arr.indexOf(num) === -1) { //判断数组newArr内有没有此元素
                arr.push(num);
            } else {
                i--;
            }
        }
        document.querySelector("#div2").innerHTML = arr;
    }

    function div3() {
        let arr = [];
        for (i = 0; i < 10; i++) {
            arr[i] = (Math.floor(Math.random() * 100) + 1)
        }
        arr.sort(function (a, b) {
            return a - b
        }); //升序
        document.querySelector("#div3").innerHTML = arr;
    }

    function div4() {
        let arr = [];
        for (i = 0; i < 10; i++) {
            arr[i] = (Math.floor(Math.random() * 100) + 1)
        }
        arr.sort(function (a, b) {
            return b - a
        }); //降序
        document.querySelector("#div4").innerHTML = arr;
    }

    function div5() {
        let arr = [];
        for (i = 0; i < 10; i++) {
            let num = (Math.floor(Math.random() * 33) + 168)
            if (arr.indexOf(num) === -1) { //判断数组newArr内有没有此元素
                arr.push(num);
            } else {
                i--;
            }
        }
        arr.sort(function (a, b) {
            return a - b
        }); //升序
        document.querySelector("#div5").innerHTML = arr;
    }

    function div6() {
        let arr = [];
        for (i = 0; i < 10; i++) {
            let num = (Math.floor(Math.random() * 369) + (-168))
            if (arr.indexOf(num) === -1) { //判断数组newArr内有没有此元素
                arr.push(num);
            } else {
                i--;
            }
        }
        arr.sort(function (a, b) {
            return a - b
        }); //升序
        document.querySelector("#div6").innerHTML = arr;
    }

    var minNumber, maxNumber, math, sort, repeat;

    function submit() {
        minNumber = parseInt(document.querySelector("#minNumber").value); //最小值
        maxNumber = parseInt(document.querySelector("#maxNumber").value); //最大值
        math = parseInt(document.querySelector("#math").value); //数量
        sort = parseInt(document.querySelector("#sort").value); //排序
        repeat = parseInt(document.querySelector("#repeat").value); //是否重复
        let spacing = maxNumber - minNumber; //数差
        console.log('最小值:' + minNumber, '最大值:' + maxNumber, '数量:' + math, '排序:' + sort, '重复;' + repeat, '数差:' +
            spacing);
        if (repeat === 0) {
            if (checkNum(minNumber) && checkNum(maxNumber) && math > 0) {
                let arr = [];
                if (repeat === 0) {
                    for (i = 0; i < math; i++) {
                        let num = (Math.floor(Math.random() * (maxNumber - minNumber + 1)) + minNumber);
                        arr.push(num);
                    }
                } else if (repeat === 1) {
                    for (i = 0; i < math; i++) {
                        let num = (Math.floor(Math.random() * (maxNumber - minNumber + 1)) + minNumber);
                        if (arr.indexOf(num) === -1) { //判断数组newArr内有没有此元素
                            arr.push(num);
                        } else {
                            i--;
                        }
                    }
                }
                if (sort === 1) {
                    arr.sort(function (a, b) {
                        return a - b
                    });
                } else if (sort === 2) {
                    arr.sort(function (a, b) {
                        return b - a
                    });
                } else if (sort === 0) {
                    arr = arr;
                }
                document.querySelector("#div7").innerHTML = arr;
            } else {
                alert('参数有误!');
            }
        } else if (repeat === 1) {
            if (checkNum(minNumber) && checkNum(maxNumber) && math > 0 && spacing >= (math - 1)) {
                let arr = [];
                if (repeat === 0) {
                    for (i = 0; i < math; i++) {
                        let num = (Math.floor(Math.random() * (maxNumber - minNumber + 1)) + minNumber);
                        arr.push(num);
                    }
                } else if (repeat === 1) {
                    for (i = 0; i < math; i++) {
                        let num = (Math.floor(Math.random() * (maxNumber - minNumber + 1)) + minNumber);
                        if (arr.indexOf(num) === -1) { //判断数组newArr内有没有此元素
                            arr.push(num);
                        } else {
                            i--;
                        }
                    }
                }
                if (sort === 1) {
                    arr.sort(function (a, b) {
                        return a - b
                    });
                } else if (sort === 2) {
                    arr.sort(function (a, b) {
                        return b - a
                    });
                } else if (sort === 0) {
                    arr = arr;
                }
                document.querySelector("#div7").innerHTML = arr;
            } else {
                alert('参数有误!');
            }
        }
    }

    function reset() {
        document.querySelector("#minNumber").value = '';
        document.querySelector("#maxNumber").value = '';
        document.querySelector("#math").value = '';
        document.querySelector("#sort").value = 0;
        document.querySelector("#repeat").value = 0;
    }

    function checkNum(input) {
        let reg = /^-?\d+$/; //判断字符串是否为整数
        let num = input;
        return reg.test(num);
    }
</script>

</html>
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值