咱们先看一下随机数组排序的示例,再来研究其中的原理。html
var numbers = [5, 458 , 120 , -215 , 228 , 400 , 122205, -85411]; numbers = numbers.sort(function(){ return Math.random() - 0.5});
咱们能够把任意数组从新排序,而后输入。数组
sort()是数组操做的一个方法,目的是对数组从新排序。先看下面的使用方法:dom
arrayobj.sort(function);
若是有函数,那么sort()方法会把数组中的元素两两传进执行的函数,若是返回为1则调换两个元素的位置,若是返回为-1则不变化。arrayobj为目标数组,function为sort()方法执行的函数,若是不写这个参数,那么元素将按照 ASCII 字符顺序进行升序排列。函数
注意:在执行的过程当中,并不会生成新的数组对象。spa
看了上面的介绍应该明白了sort()用法,那么咱们一块儿来看一下代码吧:code
function autoSort(a,b){ //生成随机数跟0.5比较 return Math.random() >= 0.5 ? 1 : -1; } var arr = ["a","b","c","d"]; arr.sort(autoSort);//往autoSort中两两传入数组元素 alert(arr);//打乱顺序以后的随机数组。
若是你还不明白JS数学函数的应用,那么请阅读 《JS经常使用的数学函数总汇》上面的方法就是依赖autoSort()函数产生的随机数,若是>=0.5则返回1,小于0.5则返回-1。 从而sort()也就会随机排序数组了。htm