1. 程式人生 > >JS隨機打亂陣列的方法

JS隨機打亂陣列的方法

JS生成隨機打亂陣列的方法示例

方法一:這個方法打得比較亂

// An highlighted block
var arr = [4,1,67,12,45,121,3];
arr.sort(function() {
    return (0.5-Math.random());
});
console.log(arr);

這裡介紹下sort()函式,在JS中Array物件裡內建了一個函式:

arrayobj.sort([sortfunction])

此方法將 Array 物件進行適當的排序;在執行過程中並不會建立新的 Array 物件。

sortFunction為可選項。

是用來確定元素順序的函式的名稱。如果這個引數被省略,那麼元素將按照 ASCII 字元順序進行升序排列。 sortFunction方法有兩個引數。分別代表每次排序比較時的兩個陣列項。sort()排序時每次比較兩個陣列項都回執行這個引數,並把兩個比較的陣列項作為引數傳遞給這個函式。當函式返回值為1的時候就交換兩個陣列項的順序,否則就不交換。

方法二:最精簡程式碼的打亂方法:

var arr = [4,1,67,12,45,121,3];
function randArr(num) {
    for (var i = 0; i < num; i++) {
        var iRand = parseInt(num * Math.random());
        var temp = arr[i];
        arr[i] = arr[iRand];
        arr[iRand] = temp;
    }
    return arr;
}
//測試:
console.log(randArr(arr.length)
);