JavaScript数组随机重排:两种实现方式与性能对比

作者:函数茶馆

时间:2026-10-30

浏览:537

本文介绍JavaScript中数组随机重排(洗牌)的两种常见实现方式。第一种利用Array.prototype.sort结合Math.random进行排序,代码简洁但性能较差;第二种采用经典的Fisher-Yates洗牌算法,通过遍历交换元素实现高效重排。文章包含完整测试代码与性能对比结果,帮助开发者根据实际需求选择合适方案。

文章目录

JavaScript数组随机重排方法介绍

本文介绍JavaScript中实现数组随机重排(洗牌)的具体方法,供开发者参考。

文中提供了两种不同的数组随机重排实现方案。

两种洗牌算法实现与性能测试


<script>
var count = 100000,arr = [];
for(var i=0;i<count;i++){
 arr.push(i);
}
//常规方法,sort()
var t = new Date().getTime();
Array.prototype.sort.call(arr,function(a,b){ return Math.random()>.5 ? -1 : 1;});
document.write(arr+'<br/>');
var t1 = new Date().getTime();
document.write(t1-t);
//以下方法效率最高
if (!Array.prototype.shuffle) {
  Array.prototype.shuffle = function() {
    for(var j, x, i = this.length; i; j = parseInt(Math.random() * i), x = this[--i], this[i] = this[j], this[j] = x);
    return this;
  };
}
var t = new Date().getTime();
arr.shuffle();
document.write('<br/>'+arr+'<br/>');
var t1 = new Date().getTime();
document.write(t1-t);
</script>

希望本文介绍的内容对JavaScript程序设计有所帮助。

实用工具推荐

电子包浆

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

使用 ›
图片压缩

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

使用 ›
相关文章