Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

js 数组打乱顺序

作者:花折亦无情   发布日期:2026-02-04   浏览:14

// 使用 Fisher-Yates 洗牌算法来打乱数组顺序

function shuffleArray(array) {
  for (let i = array.length - 1; i > 0; i--) {
    // 生成一个 0 到 i 的随机索引 j
    const j = Math.floor(Math.random() * (i + 1));

    // 交换 array[i] 和 array[j]
    [array[i], array[j]] = [array[j], array[i]];
  }
  return array;
}

// 示例
const myArray = [1, 2, 3, 4, 5];
console.log(shuffleArray(myArray));

解释说明:

  1. Fisher-Yates 洗牌算法:这是一种经典的洗牌算法,能够在 O(n) 时间复杂度内将数组元素随机打乱。
  2. 循环从后往前遍历数组:从数组的最后一个元素开始,逐步向前遍历。
  3. 随机选择一个索引:对于每个位置 i,随机选择一个索引 j(范围是 0 到 i),然后交换这两个位置的元素。
  4. 返回打乱后的数组:最终返回打乱顺序后的数组。

这种方法能确保每个元素出现在任何位置的概率是相等的,从而实现真正随机的打乱。

上一篇:js 数组对象排序

大家都在看

js 数组打乱顺序

js 数组对象排序

js 对象数组排序

js 数组删掉第一个值

js fill

js 数组连接

js json数组

js 数组复制

js 复制数组

js 数组拷贝

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站