javaScript實現數組的隨機排序

方案一

已經學過JavaScript,我們當然就可以用數組的排序方法 sort,這是最簡單的方式來實現了.
sort 方法的基本語法:

arr.sort();

不傳參數就默認排序,可以傳入一個函數作爲參數,自定義排序規則

整體返回:

返回排序的數組

是否改變原數組:

改變原數組

使用 sort 實現數組排序的基本語法如下:

arr.sort(function(a,b){		
    return Math.random()-0.5;	//==>數組亂序排列
})

話不多說,直接看代碼:

let arr = [11,24,56,23,45,96,25,75];
arr.sort(function(a,b){
     return Math.random() - 0.5;
})
console.log(arr);

2. 方案二

在方案二中我們需要藉助一個空數組,通過產生隨機數,將隨機數選中的數據放置在空數組中,然後刪除已經被選出的數據,一直循環,直至所有數據被循環完畢.

代碼如下:

    let arr = [11,24,56,23,45,96,25,75];
    function RandSort(arr) {
        let newArr = new Array();
        while(arr.length > 0 ) {
            let randNum =parseInt(Math.random() * arr.length) ;
            //講選出的數據放入新數組
            newArr.push(arr[randNum]);
            //刪除數組中當前選中的數據
            arr.splice(randNum,1);
        }
        return newArr;
    }
    let arr1 = RandSort(arr);
    console.log(arr1);

值得注意的是不要直接在函數裏面定義length,後面直接使用length的值在我們的方法中,length的值是一直變小的.

方案三

通過一箇中間數來實現,這個中間數據在我們平時交換數據內容的時候回經常用到,如下面的代碼:

let arr = [11,24,56,23,45,96,25,75];
    function sortArr(arr) {
        let length = arr.length;
        let temp;
        for(i = 0 ; i < length ; i++) {
            let index = parseInt(Math.random() * length);
            let temp = arr[index];
            arr[index] = arr[i];
            arr[i] = temp;
        }
        return arr;
    }
    let arr1 = sortArr(arr);
    console.log(arr1);
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章