Fork me on GitHub

JavaScript实现数组随机排序

JavaScript中提供了sort()和reverse()方法对数组项重新排序。但很多时候这两个方法无法满足我们实际业务的需求。下面分享两个随机排序的方法:

// 方法一
var arr = [1,2,3,4,5,6,7,8,9,10];
function randSort(arr){
var len = arr.length
for(var i = 0; i < len; i++){
var rand = parseInt(Math.random()*len);
var temp= arr[rand];
arr[rand] = arr[i];
arr[i] = temp;
}
return arr;
}
console.log(randSort(arr));

// 方法二
var arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
arr.sort(function(num1, num2) {
// -1表示每次num1在num2的前面,1则相反,用Math.random()和0.5相比较,也就实现随机的正反,即随机排序
return Math.random() > 0.5 ? -1 : 1;
});
console.log(arr);