当前位置:首页 > JavaScript

js实现一个随机数

2026-03-02 02:43:03JavaScript

生成随机整数

使用 Math.random() 生成 [0, 1) 范围内的随机小数,结合 Math.floorMath.ceil 转换为整数。

// 生成 [min, max] 范围内的随机整数
function getRandomInt(min, max) {
  return Math.floor(Math.random() * (max - min + 1)) + min;
}
// 示例:生成 1-10 的随机整数
const randomNum = getRandomInt(1, 10);

生成随机浮点数

直接使用 Math.random() 或扩展范围:

// 生成 [min, max) 范围内的随机浮点数
function getRandomFloat(min, max) {
  return Math.random() * (max - min) + min;
}
// 示例:生成 0-1 的随机浮点数
const randomFloat = getRandomFloat(0, 1);

生成随机字符串

结合随机数和字符集生成固定长度的字符串:

function getRandomString(length) {
  const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
  let result = '';
  for (let i = 0; i < length; i++) {
    result += chars.charAt(Math.floor(Math.random() * chars.length));
  }
  return result;
}
// 示例:生成 8 位随机字符串
const randomStr = getRandomString(8);

生成不重复随机数(洗牌算法)

通过 Fisher-Yates 算法打乱数组实现不重复随机:

function shuffleArray(array) {
  for (let i = array.length - 1; i > 0; i--) {
    const j = Math.floor(Math.random() * (i + 1));
    [array[i], array[j]] = [array[j], array[i]];
  }
  return array;
}
// 示例:生成 1-10 的不重复随机序列
const uniqueRandom = shuffleArray([...Array(10).keys()].map(x => x + 1));

使用 Crypto API 生成高安全性随机数

适用于密码学场景,通过 crypto.getRandomValues 实现:

js实现一个随机数

function getSecureRandomInt(min, max) {
  const range = max - min + 1;
  const bytes = new Uint32Array(1);
  crypto.getRandomValues(bytes);
  return min + (bytes[0] % range);
}
// 示例:生成 1-100 的安全随机整数
const secureRandom = getSecureRandomInt(1, 100);

标签: 随机数js
分享给朋友:

相关文章

js实现图片上传

js实现图片上传

图片上传的基本实现 使用HTML的<input type="file">元素配合JavaScript的File API可以实现图片上传功能。HTML部分需要创建一个文件选择输入框和一个用于…

js实现二叉树

js实现二叉树

二叉树的基本概念 二叉树是一种树形数据结构,每个节点最多有两个子节点,分别称为左子节点和右子节点。二叉树的常见操作包括插入、删除、遍历等。 二叉树的节点定义 在JavaScript中,二叉树的节点可…

js实现选题

js实现选题

实现选题功能的JavaScript方法 基础实现方案 使用数组存储选项,通过随机索引选取: const options = ['选项A', '选项B', '选项C', '选项D']; const r…

js树实现

js树实现

树的基本概念 树是一种非线性的数据结构,由节点和边组成。每个节点包含一个值和指向子节点的引用。树的顶部节点称为根节点,没有子节点的节点称为叶节点。 树的实现方式 在JavaScript中,树可以通过…

js实现授权

js实现授权

授权流程设计 授权流程通常涉及前端与后端的交互,常见方案包括OAuth2.0、JWT等。以JWT为例的典型流程: 用户提交凭证(如用户名密码)到认证服务 服务端验证通过后生成包含用户信息的JWT令牌…

js实现删除

js实现删除

使用 splice 方法删除数组元素 splice 方法可以删除数组中的元素,并返回被删除的元素。它接受两个参数:起始索引和要删除的元素数量。 const array = [1, 2, 3, 4…