JavaScript生成随机数的4种自定义函数分享

JavaScript生成随机数的4种自定义函数分享

本文将介绍4种利用JavaScript生成随机数的自定义函数,包括生成n位随机字符串、生成指定范围的整数、生成指定范围的小数、生成可以重复的随机数组。下面将分别进行介绍。

生成n位随机字符串

function randomString(len) {
  len = len || 32;
  var $chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890';
  var maxPos = $chars.length;
  var pwd = '';
  for (i = 0; i < len; i++) {
    pwd += $chars.charAt(Math.floor(Math.random() * maxPos));
  }
  return pwd;
}

该函数能够生成指定长度len的随机字符串,其中用到了字符串+运算符。通过将每一次的运算结果存放在变量pwd中,最终返回该变量即可。

示例说明:生成10位随机字符串

var randomStr = randomString(10)
console.log(randomStr)

输出结果:

"qrcVrHy4Wo"

生成指定范围的整数

function randomNum(minNum, maxNum) {
  switch(arguments.length){
      case 1:
        return parseInt(Math.random()*minNum+1,10);
        break;
      case 2:
        return parseInt(Math.random()*(maxNum-minNum+1)+minNum,10);
        break;
      default:
        return 0;
        break;
  }
}

该函数可以通过传递两个参数 minNum 和 maxNum 来生成指定范围的随机整数。通过调用 Math.random()生成0~1之间小数,再乘以区间长度后,向下取整,得到该区间整数范围内的随机结果。

示例说明:生成1~100之间的随机整数:

var randomInt = randomNum(1, 100)
console.log(randomInt)

输出结果:

42

生成指定范围的小数

function randomFloat(minNum,maxNum){
  switch(arguments.length){
      case 1:
        return Math.random()*minNum;
        break;
      case 2:
        return Math.random()*(maxNum-minNum+1)+minNum;
        break;
      default:
        return 0;
        break;
  }
}

这个函数能够生成指定范围内的随机小数。也是通过调用 Math.random()方法来生成随机数,只不过生成的是0到1之间的小数。通过对区间长度进行计算,可使其生成指定范围的小数。

示例说明:生成1.5~3.5之间的随机小数:

var randomFlo = randomFloat(1.5, 3.5)
console.log(randomFlo)

输出结果:

2.250873308403998

生成可以重复的随机数组

function getRandomArray(len, min, max) {
  var arr = []
  for (var i = 0; i < len; i++) {
    arr.push(parseInt(Math.random() * (max - min + 1) + min))
  }
  return arr
}

该函数可以生成固定长度len,并指定范围的随机数组。通过短路运算符 || 实现默认参数。具体实现方法是:将 Math.random()函数生成的小数乘以区间长度后,再向下取整,加上最小值,得到的结果符合所需随机数的范围,循环len次即可生成随机数组。

示例说明:生成长度为5,范围为1~10之间的随机数组:

var randomArr = getRandomArray(5, 1, 10)
console.log(randomArr)

输出结果:

[10, 7, 1, 2, 8]

结语

本文通过介绍四种函数,展示了JavaScript生成随机数的方法和思路。通过了解这些方法,我们可以在各种场景下方便地生成符合要求的随机数。当然,根据实际应用的需要,也可以针对这些方法进行改进和优化。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JavaScript生成随机数的4种自定义函数分享 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • JS中改变this指向的方法(call和apply、bind)

    JS中的函数中会有一个特殊的变量this,它代表当前函数的执行上下文。但是,由于JS是一门动态语言,函数都可以作为变量进行传递和赋值,那么函数内的this指向就可能会出现变化。在这种情况下,我们需要改变函数内this的指向,以确保函数能够正常执行。而JS中改变this指向的方法主要有三种,分别是call、apply和bind。 call call() 方法可…

    JavaScript 2023年6月10日
    00
  • Javascript attachEvent传递参数的办法

    当使用Javascript的attachEvent来绑定事件时,我们希望能够给事件处理函数传递一些参数,但是attachEvent本身并不支持传递参数。下面介绍两种解决方法。 方法一:使用闭包 使用闭包是attachEvent传递参数的一种常用方法。首先,我们先定义一个函数来包装我们要执行的事件处理函数。在这个包装函数中,我们可以访问到需要传递的参数,并把这…

    JavaScript 2023年6月10日
    00
  • JavaScript实现删除,移动和复制文件的方法

    下面就是“JavaScript实现删除、移动和复制文件的方法”的完整攻略。 删除文件 使用 XMLHttpRequest 对象和 AJAX 可以先准备一个简单的页面,其中有一个表单用来选择要删除的文件或文件夹,还有一个删除按钮用来触发删除操作。然后在需要执行删除的那个按钮上添加一个点击事件,将所选中的文件或文件夹通过 AJAX 上传到服务器端进行删除。代码如…

    JavaScript 2023年5月27日
    00
  • 一个最简单的级联下拉菜单

    下面是一个最简单的级联下拉菜单的制作攻略: 一、确定数据结构 首先需要确定级联下拉菜单的数据结构。通常使用 JSON 格式存储。一个简单的数据结构示例如下: { "中国": { "广东": ["广州", "深圳", "东莞"], "北京":…

    JavaScript 2023年6月11日
    00
  • element-ui 上传图片后标注坐标点

    下面将详细讲解“element-ui上传图片后标注坐标点”的完整攻略。 准备工作 安装 element-ui 组件库和 vue-cropperjs 图片裁剪插件。 npm install element-ui vue-cropperjs –save 引入 element-ui 中的 Upload 和 Dialog 组件。 <template> …

    JavaScript 2023年6月10日
    00
  • Dialog底部弹出自定义view并且伴随动画弹出和消失

    要实现Dialog底部弹出自定义view并且伴随动画弹出和消失,我们可以使用以下步骤: 自定义Dialog布局:创建一个XML文件来定义我们Dialog的布局,包括我们想要显示的视图。 示例1: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android&qu…

    JavaScript 2023年6月10日
    00
  • JS实现水平移动与垂直移动动画

    JS实现水平移动与垂直移动动画的攻略步骤如下: 步骤一:获取需操作的元素 首先,我们需要获取需要操作的元素,可以通过以下方式获取: const elem = document.querySelector(‘#target’); 其中,#target是需要操作的元素的id。 步骤二:水平移动动画 接下来,我们开始实现水平移动动画,具体步骤如下: 1. 定义初始…

    JavaScript 2023年6月10日
    00
  • JavaScript初学者应注意的七个细节小结

    JavaScript初学者应注意的七个细节小结 1. 关于变量 使用关键字var声明变量。没有使用var关键字声明的变量将会自动声明为全局变量,可能会影响其他页面的JavaScript代码。 声明变量时要加上适当的注释,方便自己和其他人阅读代码。 变量名应该简洁明了,便于理解,不要使用拼音或者将多个单词缩写在一起的方式命名变量。 示例: // 不好的示例 v…

    JavaScript 2023年6月10日
    00
合作推广
合作推广
分享本页
返回顶部