用sort()方法随机打乱数组

咱们先看一下随机数组排序的示例,再来研究其中的原理。html

随机数组排序示例

var numbers = [5, 458 , 120 , -215 , 228 , 400 , 122205, -85411];																											
numbers = numbers.sort(function(){ return Math.random() - 0.5});

咱们能够把任意数组从新排序,而后输入。数组

sort()的用法:

sort()是数组操做的一个方法,目的是对数组从新排序。先看下面的使用方法:dom

arrayobj.sort(function);

若是有函数,那么sort()方法会把数组中的元素两两传进执行的函数,若是返回为1则调换两个元素的位置,若是返回为-1则不变化。arrayobj为目标数组,function为sort()方法执行的函数,若是不写这个参数,那么元素将按照 ASCII 字符顺序进行升序排列。函数

注意:在执行的过程当中,并不会生成新的数组对象。spa

使用sort()生成随机打乱数组:

看了上面的介绍应该明白了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

相关文章
相关标签/搜索