乱序的两种方法

445 阅读1分钟

1、根据数组的原生方法sort()

sort()方法,可以接受一个函数,返回值为正则正序,为负则逆序

function outOfOrder(arr){
  return arr.sort(function(){
    return Math.random() - 0.5
  })
}
console.log(outOfOrder([1,2,3,4]))
//[ 2, 3, 1, 4 ]

2、随机替换

function outOfOrder(arr){
  let len = arr.length;
  for(let i = len;i;i--){
    let j = Math.floor(Math.random()*i);
    [arr[j],arr[i-1]] = [arr[i-1],arr[j]]
  }
  return arr;
}

console.log(outOfOrder([1,2,3,4]))
//[ 2, 1, 4, 3 ]