当前位置:首页 > JavaScript

js实现随机函数

2026-02-02 14:17:02JavaScript

实现随机数生成

Math.random() 方法返回一个浮点数,伪随机数在范围从0到小于1,包含0但不包含1

const randomNum = Math.random();
console.log(randomNum); // 输出0到1之间的随机数

生成指定范围的随机整数

要生成一个指定范围内的随机整数,可以使用以下公式:

function getRandomInt(min, max) {
  min = Math.ceil(min);
  max = Math.floor(max);
  return Math.floor(Math.random() * (max - min)) + min;
}

这个函数会返回一个大于等于min但小于max的整数。如果需要包含max,可以修改为:

function getRandomIntInclusive(min, max) {
  min = Math.ceil(min);
  max = Math.floor(max);
  return Math.floor(Math.random() * (max - min + 1)) + min;
}

生成随机字符串

要生成随机字符串,可以结合随机数和字符选择:

function generateRandomString(length) {
  const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
  let result = '';
  for (let i = 0; i < length; i++) {
    result += characters.charAt(Math.floor(Math.random() * characters.length));
  }
  return result;
}

从数组中随机选择元素

要从数组中随机选择一个元素:

function getRandomElement(array) {
  return array[Math.floor(Math.random() * array.length)];
}

打乱数组顺序(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;
}

使用加密安全的随机数

对于需要更高安全性的场景,可以使用crypto API:

function getSecureRandomInt(min, max) {
  const range = max - min;
  const randomBuffer = new Uint32Array(1);
  window.crypto.getRandomValues(randomBuffer);
  return min + (randomBuffer[0] % range);
}

生成随机颜色

生成十六进制格式的随机颜色:

js实现随机函数

function getRandomColor() {
  const letters = '0123456789ABCDEF';
  let color = '#';
  for (let i = 0; i < 6; i++) {
    color += letters[Math.floor(Math.random() * 16)];
  }
  return color;
}

标签: 函数js
分享给朋友:

相关文章

js实现文件下载

js实现文件下载

使用 a 标签下载文件 通过动态创建 a 标签并设置 download 属性实现文件下载。适用于已知文件 URL 或 Blob 数据的情况。 function downloadFile(url, f…

js实现二叉树

js实现二叉树

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

js实现路由

js实现路由

js实现路由的方法 在JavaScript中实现路由功能可以通过多种方式完成,以下是几种常见的方法: 使用原生JavaScript实现路由 通过监听window.onhashchange事件来实现基…

js实现vue组件

js实现vue组件

使用原生JavaScript实现类似Vue的组件功能 基础组件结构 创建一个简单的组件系统需要实现数据绑定、模板渲染和事件处理。以下是一个基础实现框架: class Component { co…

vue.js实现拍照

vue.js实现拍照

Vue.js 实现拍照功能 在 Vue.js 中实现拍照功能通常需要结合浏览器的媒体 API(如 getUserMedia)和 Canvas 元素。以下是实现步骤: 准备工作 确保项目已安装 Vue…

vue防抖函数实现

vue防抖函数实现

防抖函数原理 防抖(Debounce)是一种限制函数频繁调用的技术,在事件被触发后延迟执行,若在延迟时间内再次触发,则重新计时。适用于输入框搜索、窗口大小调整等场景。 Vue 中实现防抖的三种方式…