用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

相關文章
相關標籤/搜索