JavaScript实现数组随机打乱的两种方法

作者:函数茶馆

时间:2026-10-22

浏览:635

本文介绍在JavaScript中随机打乱数组的两种实现方式。第一种为自定义交换算法,通过多次随机交换元素位置实现;第二种利用数组内置的sort方法配合Math.random生成随机比较结果。文中提供了完整的代码示例及运行结果,并推荐了相关的在线工具供开发者使用。

文章目录

JavaScript数组随机打乱实现方案

本文详细介绍在JavaScript中实现数组随机打乱的几种常见方案,供开发者参考与借鉴。

基础随机交换算法

一、基础随机交换算法


function fnLuanXu(num) {
    var aLuanXu=[];
    for (var i = 0; i < num; i++) {
      aLuanXu[i] = i;
    }
    for (var i = 0; i < num; i++) {
      var iRand = parseInt(num * Math.random());
      var temp = aLuanXu[i];
      aLuanXu[i] = aLuanXu[iRand];
      aLuanXu[iRand] = temp;
      //console.log('i='+i+';temp='+temp+';rand='+iRand+';array['+i+']='+aLuanXu[i]+';array['+iRand+']='+aLuanXu[iRand]+';array=['+aLuanXu+'];');
    }
    return aLuanXu;
}
//测试:
console.log(fnLuanXu(6));

运行结果:

JavaScript数组随机打乱实现方案

基于内置sort函数的排序方案

二、基于内置sort函数的排序方案


function fnLuanXu(num) {
    var aLuanXu=[];
    for (var i = 0; i < num; i++) {
      aLuanXu[i] = i;
    }
    aLuanXu.sort(function(){return Math.random()>0.5?-1:1;})
    return aLuanXu;
}
//测试:
console.log(fnLuanXu(7));

运行结果:

JavaScript数组随机打乱实现方案

补充推荐以下相关在线工具供参考:

在线随机数字/字符串生成工具: http://tools.jb51.net/aideddesign/suijishu

在线中英文根据首字母排序工具: http://tools.jb51.net/aideddesign/zh_paixu

在线文本倒序翻转排序工具: http://tools.jb51.net/aideddesign/flipped_txt

更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript数学运算用法总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript数组操作技巧总结》、《JavaScript排序算法总结》、《JavaScript遍历算法与技巧总结》、《JavaScript查找算法技巧总结》及《JavaScript错误与调试技巧总结》

希望本文所述对大家JavaScript程序设计有所帮助。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章