javascript - js完全打乱数组
本文介绍了javascript - js完全打乱数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
var arr = [0,1,2,3,4,5,6,7]
完全打乱,要求,每个元素的位置必须要变动
解决方案
首先,题主并不是要传统的数组乱序,如果是传统的数组乱序,当然首推 Fisher-Yates,Math.random() 的黑科技并不能保证概率的一致,详情可以看我以前的分析 https://github.com/hanzichi/u...
如果每个位置都需要变动,随便写了一段代码,勉强可以用:
function shuffle(a) {
let len = a.length;
let shuffled = Array(len);
for (let i = len; i--; ) {
let rand = ~~(Math.random() * i);
shuffled[i] = a[rand];
a[rand] = a[i];
}
return shuffled;
}
新建了一个数组,并且污染了原数组,很不优雅,题主可以自己改进下
这篇关于javascript - js完全打乱数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文