将数组的顺序随机打乱(洗牌函数)

export function shuffle(arr) {
  let _arr = arr.slice()
  for (let i = 0; i < _arr.length; i++) {
    const j = _getRandomNumber(0, i)
    const temp = _arr[i]
    _arr[i] = _arr[j]
    _arr[j] = temp
  }
  return _arr
}
function _getRandomNumber(min, max) {
  // min, max 之间的一个数字
  // [0, 1) -> [min, max]
  // [0, 1) -> [0, max - min) -> [min, max)
  // [0, 1) -> [0, max - min + 1) -> [min, max + 1) -> [min, max]
  return Math.floor(Math.random() * (max - min + 1) + min)
}

 

posted @ 2021-08-29 20:38  吴小明-  阅读(327)  评论(0编辑  收藏  举报