2019独角兽企业重金招聘Python工程师标准>>>
我们先看一下随机数组排序的示例,再来研究其中的原理。
随机数组排序示例
var numbers = [5, 458 , 120 , -215 , 228 , 400 , 122205, -85411];
numbers = numbers.sort(function(){ return Math.random() - 0.5});
我们可以把任意数组重新排序,然后输入。
sort()的用法:
sort()是数组操作的一个方法,目的是对数组重新排序。先看下面的使用方法:
arrayobj.sort(function);
如果有函数,那么sort()方法会把数组中的元素两两传进执行的函数,如果返回为1则调换两个元素的位置,如果返回为-1则不变化。arrayobj为目标数组,function为sort()方法执行的函数,如果不写这个参数,那么元素将按照 ASCII 字符顺序进行升序排列。
注意:在执行的过程中,并不会生成新的数组对象。
使用sort()生成随机打乱数组:
看了上面的介绍应该明白了sort()用法,那么我们一起来看一下代码吧:
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()也就会随机排序数组了。