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

js 打乱数组

作者:金钱打造势力狗。   发布日期:2026-01-15   浏览:50

// 打乱数组的示例代码

function shuffleArray(array) {
    // 使用 Fisher-Yates 洗牌算法打乱数组
    for (let i = array.length - 1; i > 0; i--) {
        // 生成一个从 0 到 i 的随机索引
        const j = Math.floor(Math.random() * (i + 1));
        // 交换当前元素和随机索引处的元素
        [array[i], array[j]] = [array[j], array[i]];
    }
    return array;
}

// 示例用法
const originalArray = [1, 2, 3, 4, 5];
const shuffledArray = shuffleArray([...originalArray]); // 使用扩展运算符创建原数组的副本,避免修改原数组
console.log(shuffledArray);

解释说明:

  • Fisher-Yates 洗牌算法:这是一种经典的算法,用于将数组中的元素随机打乱。它的核心思想是从数组的最后一个元素开始,依次与前面的某个随机位置的元素进行交换,从而保证每个元素都有相等的概率出现在任意位置。
  • Math.random():生成一个介于 0 和 1 之间的随机数,通过乘以 (i + 1) 来确保生成的索引在有效范围内。
  • 解构赋值[array[i], array[j]] = [array[j], array[i]]; 这行代码用于交换两个数组元素的位置,语法简洁且易读。
  • 扩展运算符 (...):在调用 shuffleArray 函数时使用扩展运算符来创建原数组的副本,这样可以避免直接修改原数组。

上一篇:js 数组 findindex

下一篇:js window.location.href

大家都在看

js 数组对象排序

js 对象数组排序

js 数组删掉第一个值

js fill

js 数组连接

js json数组

js 数组复制

js 复制数组

js 数组拷贝

js 数组对象合并

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

Laravel 中文站