当前位置:首页 > JavaScript

js实现乱序

2026-02-01 06:25:06JavaScript

数组乱序的实现方法

使用 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 方法的简化实现

通过比较随机数来实现数组排序,这种方法代码简洁但效率较低。

js实现乱序

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

生成随机索引的乱序方法

创建一个新数组,从原数组中随机选取元素放入新数组。

function randomIndexShuffle(array) {
  const shuffled = [];
  const copy = [...array];

  while (copy.length > 0) {
    const randomIndex = Math.floor(Math.random() * copy.length);
    shuffled.push(copy.splice(randomIndex, 1)[0]);
  }

  return shuffled;
}

性能考虑

Fisher-Yates 算法的时间复杂度为 O(n),是最优的乱序算法。sort 方法的时间复杂度为 O(n log n),适合小型数组。随机索引方法需要额外的空间复杂度。

应用场景

Fisher-Yates 适用于大型数据集的乱序需求。sort 方法适合快速实现小型数组乱序。随机索引方法在需要保留原数组时适用。

标签: js
分享给朋友:

相关文章

jquery.js

jquery.js

jQuery 简介 jQuery 是一个快速、简洁的 JavaScript 库,用于简化 HTML 文档遍历、事件处理、动画设计和 Ajax 交互。它的设计宗旨是“Write Less, Do Mor…

js实现

js实现

实现 JavaScript 功能的方法 在 JavaScript 中实现特定功能通常涉及多个步骤。以下是常见的实现方法: 基础语法和变量声明 使用 let 或 const 声明变量: let co…

js 进度条的实现

js 进度条的实现

使用 HTML 和 CSS 创建基础进度条 HTML 结构可以简单使用一个 div 元素作为容器,内部嵌套另一个 div 表示进度: <div class="progress-containe…

jquery js

jquery js

jQuery 简介 jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画和 Ajax 交互。它兼容多种浏览器,提供易于使用的 API,使开发者能够更高…

js实现祖玛

js实现祖玛

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

js实现游标

js实现游标

使用JavaScript实现游标 在JavaScript中,可以通过操作DOM元素的cursor样式属性来实现自定义游标效果。以下是几种常见的实现方法: 修改默认鼠标指针样式 通过CSS的curso…