实现数组随机排序的方法

2,510 阅读1分钟

数组随机排序的方法如下

方法一

1.用循环遍历数组元素
2.生成一个随机数字 用变量保存
3.然后将该项和后面的一项进行交换

//
       let arr = [1,2,3,4,5,6,7,8,9,10]
       function random(arr){
       // 进行 循环遍历数组元素  
       for(let i = 0;i<arr.length;i++){
          // 生成一个随机数  * 数组的长度 
           let rand = Math.ceil(Math.random()*arr.length)
          //  进行交换
          //  变量保存数组的随机下标的一个元素
           let sum = arr[rand]
          //  再将原数组下标的元素 赋值 给 新数组随机下标的元素 
           arr[rand] = arr[i]
          // 随机下标的元素 赋值 到袁数组中
           arr[i] = sum 
        }
        return arr
     }
     console.log(random(arr))

方法二

当原来的数组还存在的时候,使用Math.random()生成一个随机数,然后使用 Math.random() * arr.length向下取整,得到一个下标,然后将其放入另一个数 组中,从而实现打乱顺序。

let arr = [1,2,3,4,5,6,7,8,9,10]
function ranSort(arr) {
  let newArr = []
  while (arr.length > 0) {
    let ranIndex = Math.floor(Math.random() * arr.length)
    result.push(arr[ranIndex])
    arr.splice(ranIndex, 1)
  }
  return newArr
}
console.log(ranSort(arr))

方法三

使用数组中的sort方法。

let arr = [1,2,3,4,5,6,7,8,9,10]
arr.sort(function(){return Math.random() - 0.5})
console.log(arr)