JavaScript数组随机重排:两种实现方式与性能对比
作者:函数茶馆时间:2026-10-30 02:04:29浏览:536
本文介绍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程序设计有所帮助。
作者最新文章
JS大数值转字符串出现科学计数法怎么办
2026-11-05 17:09:21
JS split切割后出现空字符串怎么过滤
2026-11-05 16:00:30
在 React 或 Vue 项目中封装使用 JS 节流防抖
2026-11-05 15:27:29
JavaScript中怎么将带小数的字符串转为整数?
2026-11-05 14:32:38
怎么用JavaScript策略模式重构电商促销计算逻辑?
2026-11-05 14:01:09
