如何实现数组的随机排序

304 阅读1分钟

如何实现数组的随机排序

方法一

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

控制台结果 在这里插入图片描述

方法二

var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
function randSort2(arr) {
  var mixedArray = []
  while (arr.length > 0) {
    var randomIndex = parseInt(Math.random() * arr.length)
    mixedArray.push(arr[randomIndex])
    arr.splice(randomIndex, 1)
  }
  return mixedArray
}
console.log(randSort2(arr))

控制台结果 在这里插入图片描述

方法三

// 通过数组的 sort 方法结合 Math.random() 随机数
var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
arr.sort(function () {
  return Math.random() - 0.5
})

console.log(arr)

控制台结果 在这里插入图片描述