js 打乱数组

代码

1
2
3
4
5
function upsetArray(arr) {
return arr.sort(function() {
return(0.5 - Math.random())
});
}

分析

  • sort 是对数组进行排序,V8 引擎 sort 函数只给出了两种排序 InsertionSort 和 QuickSort,数量小于10的数组使用 InsertionSort,比10大的数组则使用 QuickSort。
  • 它的是这样工作的:每次从数组里面挑选两个数进行运算,如果传入的参数是0 两个数位置不变;如果参数大于0 就交换位置;如果参数小于0就不交换位置;接下来用刚才的较大数字跟下一个进行比较,这样循环进行排序。
  • 恰好,我们利用了这一点使用了 0.5 - Math.random 这个运算的结果要么是大于0,要么是小于0。这样要么交换位置,要么不交换位置,当然大于或者小于0是随即出现的,所以数组就被随机排序了。
------------- 本文结束 感谢您的阅读 -------------

本文标题:js 打乱数组

文章作者:水中熊

发布时间:2018年06月12日 - 18:06

最后更新:2018年06月12日 - 18:06

原始链接:https://shuizhongxiong.github.io/js-arrayRandom.html

许可协议: 知识共享署名-非商业性使用-相同方式共享 3.0 中国大陆许可协议进行许可。 转载请保留原文链接及作者。

🌹坚持原创技术分享,您的支持将鼓励我继续创作!🌹
0%