当前位置:首页 > JavaScript

js实现随机函数

2026-04-07 07:52:09JavaScript

生成随机数

在JavaScript中,Math.random() 是最基础的随机数生成方法,返回一个介于0(包含)和1(不包含)之间的浮点数。

const randomNum = Math.random();
console.log(randomNum); // 输出类似 0.123456789

生成指定范围的随机整数

结合 Math.floor()Math.ceil() 可以生成指定范围内的随机整数。以下是一个生成 minmax 之间随机整数的函数:

js实现随机函数

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

console.log(getRandomInt(1, 10)); // 输出 1 到 10 之间的整数

生成随机字符串

如果需要生成随机字符串(如用于ID或验证码),可以通过以下方式实现:

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

console.log(generateRandomString(8)); // 输出类似 "aB3dE7fG"

随机打乱数组

使用 Fisher-Yates 洗牌算法可以高效地随机打乱数组:

js实现随机函数

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;
}

const arr = [1, 2, 3, 4, 5];
console.log(shuffleArray(arr)); // 输出类似 [3, 1, 5, 2, 4]

生成不重复的随机数

如果需要从一组数据中随机选取不重复的多个值,可以使用以下方法:

function getUniqueRandomItems(array, count) {
  const shuffled = [...array].sort(() => 0.5 - Math.random());
  return shuffled.slice(0, count);
}

const numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
console.log(getUniqueRandomItems(numbers, 3)); // 输出3个不重复的随机数

使用 crypto.getRandomValues 生成更安全的随机数

如果需要更高安全性的随机数(如加密场景),可以使用 crypto.getRandomValues

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

console.log(getSecureRandomInt(1, 100)); // 输出1到100之间的安全随机整数

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

相关文章

php 函数实现

php 函数实现

PHP 函数实现基础 PHP 函数的定义使用 function 关键字,后跟函数名和参数列表。函数名不区分大小写,但建议保持一致。 function functionName($param1, $p…

js手势实现

js手势实现

手势识别实现方法 在JavaScript中实现手势识别通常涉及监听触摸事件(touchstart、touchmove、touchend)或鼠标事件(mousedown、mousemove、mouseu…

js画图实现

js画图实现

使用Canvas API绘制图形 Canvas是HTML5提供的绘图API,通过JavaScript操作Canvas元素可以绘制各种图形。以下是一个简单的示例: <canvas id="myC…

js 实现滚动

js 实现滚动

实现滚动的方法 使用 window.scrollTo() window.scrollTo() 方法可以滚动到文档中的特定位置。可以指定 x 和 y 坐标,或者使用平滑滚动的选项。 // 滚动到指定位…

实现继承js

实现继承js

实现继承的方式 在JavaScript中,实现继承可以通过多种方式完成,每种方式都有其优缺点。以下是几种常见的实现继承的方法: 原型链继承 原型链继承是最基本的继承方式,通过将子类的原型指向父类的实…

js实现排序

js实现排序

数组排序方法 JavaScript提供了内置的sort()方法用于数组排序。默认情况下,sort()将元素转换为字符串并按照Unicode码点排序。对于数字排序,需传入比较函数。 const num…