当前位置:首页 > JavaScript

js 实现数组乱序

2026-03-16 07:26:01JavaScript

数组乱序的实现方法

在 JavaScript 中,可以通过多种方法实现数组乱序(随机打乱数组顺序)。以下是几种常见的实现方式:

js 实现数组乱序

Fisher-Yates 洗牌算法

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

使用 sort 方法结合随机数

利用 Array.prototype.sort 方法结合随机数生成器实现乱序。需要注意的是,这种方法在某些情况下可能不够均匀。

function shuffleArray(array) {
  return array.sort(() => Math.random() - 0.5);
}

使用 Lodash 库的 _.shuffle 方法

如果项目中已经引入了 Lodash 库,可以直接使用其提供的 _.shuffle 方法。

const _ = require('lodash');
const shuffledArray = _.shuffle(originalArray);

注意事项

  • Fisher-Yates 算法是推荐的方法,因为它的性能和随机性更好。
  • 使用 sort 方法结合随机数的方式虽然简洁,但可能在某些 JavaScript 引擎中表现不佳。
  • 如果需要多次执行乱序操作,建议封装为可复用的函数。

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

相关文章

js实现跳转

js实现跳转

使用 window.location 跳转 通过修改 window.location.href 实现页面跳转,这是最常用的方法。 window.location.href = 'https://…

js实现复制

js实现复制

使用document.execCommand方法 在较旧的浏览器中,可以使用document.execCommand('copy')实现复制功能。创建一个临时的textarea或input元素,将需要…

js实现图片上传

js实现图片上传

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

js实现vr

js实现vr

使用WebXR API实现VR体验 WebXR是浏览器中实现VR和AR体验的标准API,它取代了早期的WebVR。现代浏览器如Chrome、Edge和Firefox已支持WebXR。 // 初始化W…

js实现点击显示和隐藏

js实现点击显示和隐藏

实现点击显示和隐藏的JavaScript方法 使用classList.toggle切换类名 通过添加/移除CSS类控制元素的显示与隐藏,需提前在CSS中定义隐藏样式(如display: none)。…

js实现授权

js实现授权

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