当前位置:首页 > 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() 或扩展范围:

js实现一个随机数

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

生成随机字符串

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

js实现一个随机数

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 实现:

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如何实现继承

原型链继承 通过将子类的原型指向父类的实例实现继承。子类实例能够访问父类原型上的属性和方法。 function Parent() { this.name = 'parent'; } Parent…

js实现图表

js实现图表

在JavaScript中实现图表通常使用流行的图表库,以下是几种常见的方法和工具: 使用Chart.js Chart.js是一个简单灵活的库,适合快速生成响应式图表。安装方式包括CDN引入或npm…

js实现二叉树

js实现二叉树

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

js实现祖玛

js实现祖玛

实现祖玛游戏的核心思路 祖玛游戏的核心玩法是发射彩色珠子,形成三个或以上相同颜色的珠子即可消除。以下是使用JavaScript实现的基本框架。 游戏初始化 创建画布并初始化游戏状态: const…

js实现防洪

js实现防洪

防抖(Debounce)实现 防抖的核心思想是在事件触发后延迟执行回调函数,若在延迟时间内再次触发事件,则重新计时。适用于输入框搜索、窗口调整等场景。 function debounce(func…

js实现授权

js实现授权

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