Array.prototype.sort()sort 方法不能实现随机排序的原因是:当对一个数组进行 n 次排序后,这 n 个数组的第 x 项的平均数并不是无限接近于原数组所有项的平均数。123456789constarr=[1,7,0,5,6,4,2,9,3,8];// [1, 7, 0, 5, 6, 4, 2, 9, 3, 8]console.log(arr.slice().sort((a,b)=>0));// 保持不变// [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]console.log(arr.slice().sort((a,b)=>a-b));// 升序// [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]console.log(arr.concat().sort((a,b)=>b-a));// 降序// [3, 6, 5, 2, 9, 7, 1, 0, 4, 8]console.log(arr.concat().sort((a,b)=>0.5-Math.random()));// 伪随机经典洗牌算法123456789101112131415161718functionrandomList(initArr){letlength=initArr.length,tempArr=[],// 保存随机下标resultArr=[];// 保存结果whi
...
继续阅读
(6)