javaScriptは配列のランダムなソートを実現します.

10354 ワード

プラン1JavaScriptを学んだことがあります.もちろん配列の並べ替え方法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.案二
スキーム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の値は私達の方法ではずっと小さくなります.
案3
一つの中間数を通じて実現します.この中間データは私達が普段データの内容を交換する時によく使います.下記のコードのように.
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);