JS随机生成数与序列方法详解

这次给大家带来JS随机生成数与序列方法详解,JS随机生成数与序列的注意事项有哪些,下面就是实战案例,一起来看一下。

•1.Math.random(); 结果为0-1间的一个随机数(包括0,不包括1)

•2.Math.floor(num); 参数num为一个数值,函数结果为num的整数部分。与取整数的parseInt(num)方法一样。

•3.Math.round(num); 参数num为一个数值,函数结果为num四舍五入后的整数。

•4.Math.ceil(num); 返回大于等于n的最小整数。

合理使用上述方法生成指定范围的随机数:

包含最小值不包含最大值的情况:

  parseInt(num)取整,将传入的num向小的整数转化。将Math.random()乘以最大和最小的差值,在用parseInt处理(注意此时的范围是【0-差值)),再加上最小值,就能得到包括最小值但不包括最大值的整数。

 获取包含最小值但不包括最大值的随机数,用如下函数实现:

function getRandom1(start, end) {      var length = end - start;      var num = parseInt(Math.random() * (length) + start);      return num;    }

登录后复制

包括最大值但不包含最小值的情况:

  Math.ceil(num)取得大于等于num的最小整数,也就是将传入的num向大的整数转化。将Math.random()乘以最大和最小的差值,在用Math.ceil()处理(注意此时的范围是(0-差值】),在加上最小值,就能得到不包括最小值但包括最大值的整数。也就是将上面情况的parseInt改为Math.ceil()

获取包含最大值但不包括最小值的随机数,用如下函数实现:

 function getRandom1(start, end) {    var length = end - start;    var num = Math.ceil(Math.random() * (length) + start);    return num;  }

登录后复制

最大值和最小值都包含的情况:

  最大值和最小值都包含,此时可取值的范围相比于上述两种情况已经 扩大1。在生成随机数阶段,就要将可能生成随机数的范围扩大1。使用parseInt向小的值取整可行,用Math.ceil(num)往大的值转化也可以(转化后需要-1)。不管采用哪种方式,关键在于生成随机数阶段将范围加1.

采用parseInt的方法

function getRandom1(start, end) {    var length = end - start + 1;    var num = parseInt(Math.random() * (length) + end);    return num;  }

登录后复制

——————————————————————————–

  一些时候,仅仅生成随机数是不够的,还需要将指定范围的数值,按照随机顺序排列。我们将这个问题转化为生成随机数后加入数组并避免重复的问题。每次循环顺序生成的数是随机的,按照顺序加入数组,以此实现数值大小的随机排列。

生成指定范围的随机数序列:

  随机序列可直接通过sort排序方法实现,将一个包含一组按顺序排列的数字元素,调用sort方法,通过函数传入随机生成的值(可能为正可能为负),就可以将顺序打乱,得到该数组的随机序列。

如下:getNum()返回的是数字1-10按顺序排列的数组,则得到的numArr就是1-10的随机序列:

  var numArr = getNum().sort(function () {        return Math.random() - 0.5;      });

登录后复制

自己写逻辑生成随机序列也是可行的:

  定义存储随机数的数组,然后循环生成随机数,生成之后到已有数组中查找,如果存在,将标记变为false表示产生的随机数重复,根据标记值来决定是否加入数组。若加入数组成功,则数组下标index(表示数组元素个数)自增,满足条件退出循环。下面例子实现5-10之间的随机序列(下面案例是左右包含的):

function getOrder(start, end) {      var length = end - start;      var myorder = new Array();      var index = 0;      while (index < length+1) {        var flag = true;        var num = parseInt(Math.random() * (length + 1));        for (var i in myorder) {          if (myorder[i] == num) {            flag = false;          }        }        if (flag == true) {          myorder[index] = num;          index++;        }      }      alert(myorder.length);      alert(myorder);    }getOrder(5, 10);

登录后复制

相信看了本文案例你已经掌握了方法,更多精彩请关注【创想鸟】其它相关文章!

推荐阅读:

this指向与call、apply使用

Less安装与使用详解

以上就是JS随机生成数与序列方法详解的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2764026.html

(0)
上一篇 2025年3月8日 10:23:05
下一篇 2025年3月8日 10:23:11

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • JS加载jquery.js步骤详解

    这次给大家带来JS加载jquery.js步骤详解,JS加载jquery.js的注意事项有哪些,下面就是实战案例,一起来看一下。 最近有一个需求: 1.在一个html中只能引入一个JS文件 不能有JS代码和其他JS文件的引入; 2.这个JS文…

    2025年3月8日
    200
  • js三种使用方式案列详解

    这次给大家带来js三种使用方式案列详解,js三种使用方式的注意事项有哪些,下面就是实战案例,一起来看一下。 1、行内js:js不单独写出 js使用方式1:行内js 登录后复制 2、内部js:script里的程序整个页面都可以用 js使用方式…

    编程技术 2025年3月8日
    200
  • js动态引入使用详解

    这次给大家带来js动态引入使用详解,使用js动态引入的注意事项有哪些,下面就是实战案例,一起来看一下。 index.html 登录后复制 test.js alert(“hello! I am test.js”); var str=”1″; …

    编程技术 2025年3月8日
    200
  • 怎样实现js支持post请求跨域

    这次给大家带来怎样实现js支持post请求跨域,实现js支持post请求跨域的注意事项有哪些,下面就是实战案例,一起来看一下。 JSONP实现跨域 常用的jquery实现跨域调用 $.ajax({ url: “http://127.0.0.…

    编程技术 2025年3月8日
    200
  • 动态加载JS文件方法总结

    这次给大家带来动态加载JS文件方法总结,动态加载JS文件的注意事项有哪些,下面就是实战案例,一起来看一下。 一、使用document.write/writeln()方式 该种方式可以实现js文件的动态加载,原理就是在重写文档流,这种方式会导…

    编程技术 2025年3月8日
    200
  • diff算法使用详解(附代码)

    这次给大家带来diff算法使用详解(附代码),diff算法使用的注意事项有哪些,下面就是实战案例,一起来看一下。 虚拟dom diff算法首先要明确一个概念就是diff的对象是虚拟dom,更新真实dom则是diff算法的结果 Vnode基类…

    编程技术 2025年3月8日
    200
  • JS实现文件拖拽步骤详解(附代码)

    这次给大家带来JS实现文件拖拽步骤详解(附代码),JS实现文件拖拽的注意事项有哪些,下面就是实战案例,一起来看一下。 1.效果图: 2.源码 #p1 { width: 350px; height: 70px; padding: 10px; …

    2025年3月8日
    200
  • 对JSON 初步了解

    json 在javascript中有着重要的作用,本篇将对其作出相关的讲解。 在 JavaScript 中创建 JSON 对象Name: Age: Address: Phone: var JSONObject= {“name”:”Bill …

    编程技术 2025年3月8日
    200
  • 了解json的相关语法

    json的相关语法对js来说很重要,本篇将对其进行讲解。 JSON 语法规则 JSON 语法是 JavaScript 对象表示法语法的子集。 数据在名称/值对中 数据由逗号分隔 花括号保存对象 方括号保存数组 JSON 名称/值对 JSON…

    编程技术 2025年3月8日
    200
  • 如何使用JSON

    json的使用对于js来说很重要,本篇将讲解json的使用情况。 把 JSON 文本转换为 JavaScript 对象 JSON 最常见的用法之一,是从 web 服务器上读取 JSON 数据(作为文件或作为 HttpRequest),将 J…

    编程技术 2025年3月8日
    200

发表回复

登录后才能评论