数组的随机排序

需求:需要对数组进行随机排序(例如洗牌等场景)
思路:利用数组的下标随机来实现

1.简单的随机排序

/**
 * 数组排序
 *
 * @param {type} 1:从小到大 2:从大到小 3:随机
 * @param {arr} 数组对象
 */
sortArray(arr, type = 1) {
  return arr.sort((a, b) => {
    switch (type) {
      case 1:
        return a - b;
      case 2:
        return b - a;
      case 3:
        return Math.random() - 0.5;
      default:
        return arr;
    }
  });
},

2.常用的Knuth洗牌算法

shuffleArray(array) {
  for (let i = array.length - 1; i > 0; i--) {
    const j = Math.floor(Math.random() * (i + 1));
    [array[i], array[j]] = [array[j], array[i]];
  }
  return array;
},
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容