JavaScript随机输入两个数,得到这两个数之间的随机数数组,且能排序

功能

1.用js实现随机输入两个数,选取两个数之间的10个数字,存入一个数组,按从小到大排序
2.防止输入的不是数字,返回空,提示输入数字
3.只有两个数都输入才能进行随机生成数存入数组

效果图

不输入.png
输入.png

以下是主要代码实现:

// 监听input的输入规范
inputObjs[i].oninput = function () {
      var reg = /\D/g;
      this.value = this.value.replace(reg, '');
    };
    inputObjs[i].onpaste = function () {
      return false; 
    };
// 生成一个随机数
function randomNum(n, m) {
    var num = parseInt(Math.abs(Math.random() * (m - n) + n));
    return num;
  }
// 10个随机数组成数组
for (var i = 0; i < 10; i++) {
    arr.push(randomNum(n, m));
  }
// 排序数组
function sequentialArray(arr) {
    var temp = arr.sort(function (a, b) {
      return a - b;
    });
    return temp;
  }

以下是全部代码:

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

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    input{
      width: 100px;
    }
  </style>
</head>

<body>
  <h3>请输入两个数字,得到两数之间[n,m)的一个任意排序数组</h3>
  <input type="text" placeholder="请输入任意数字">
  <input type="text" placeholder="请输入任意数字">
  <button id="btn">排序数组</button>
  <p></p>
  <p></p>
</body>

</html>
<script>
  var inputObjs = document.getElementsByTagName('input');
  var buttonObj = document.getElementById('btn');
  var pObjs = document.getElementsByTagName('p');

  for (var i = 0; i < inputObjs.length; i++) {
    inputObjs[i].oninput = function () {
      var reg = /\D/g;
      this.value = this.value.replace(reg, '') // 除了0-9都替换空值
    };
    inputObjs[i].onpaste = function () {
      return false;
    }
  }
  buttonObj.onclick = function () {
    if (inputObjs[0].value == '') {
      console.log('请输入第一个数');
    } else if (inputObjs[1].value == '') {
      console.log('请输入第二个数');
    } else {
      var arr = [];
      var n = Number(inputObjs[0].value);
      var m = Number(inputObjs[1].value);
      function randomNum(n, m) {
        var num = parseInt(Math.abs(Math.random() * (m - n) + n));
        return num;
      }
      for (var i = 0; i < 10; i++) {
        arr.push(randomNum(n, m));
      }
      function sequentialArray(arr) {
        var temp = arr.sort(function (a, b) {
          return a - b;
        });
        return temp;
      }
      console.log('生成数组',arr);
      pObjs[0].innerText = "生成数组:" + arr;
      console.log('排序数组',sequentialArray(arr));
      pObjs[1].innerText = "排序数组:" + sequentialArray(arr);
    }
  }
</script>

总结

代码还需优化

以上所有如有bug,请及时告知,你我共同进步,谢谢~
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.用js实现随机选取10~100之间的10个数字,存入一个数组,并排序 //要是获取不重复的,则对随机数...
    persistlu阅读 5,675评论 0 0
  • 官网 中文版本 好的网站 Content-type: text/htmlBASH Section: User ...
    不排版阅读 4,537评论 0 5
  • 第四天 数组【悟空教程】 第04天 Java基础 第1章数组 1.1数组概念 软件的基本功能是处理数据,而在处理数...
    Java帮帮阅读 1,639评论 0 9
  • 1、用C语言实现一个revert函数,它的功能是将输入的字符串在原串上倒序后返回。 2、用C语言实现函数void ...
    希崽家的小哲阅读 6,393评论 0 12
  • 从大阪回来,包里装的是沉甸甸的黑胶唱片。回想起这二十多年的音乐音响历程,感觉有必要写个小文纪念一下。 九十年代的时...
    clbt阅读 834评论 2 2