Skip to content

如何实现真正的乱序

原理很简单,就是遍历数组元素,然后将当前元素与以后随机位置的元素进行交换,从代码中也可以看出,这样乱序的就会更加彻底。

js
function shuffle(a) {
  // 这里必须倒着来, 因为Math.random() * i 是随机取 0~i之间的数字,倒着来就会把当前的数字与前面的数字随机交换
  for (let i = a.length; i >= 0; i--) {
    let j = Math.floor(Math.random() * i);
    [a[i], a[j]] = [a[j], a[i]];
  }
  return a;
}
function shuffle(a) {
  // 这里必须倒着来, 因为Math.random() * i 是随机取 0~i之间的数字,倒着来就会把当前的数字与前面的数字随机交换
  for (let i = a.length; i >= 0; i--) {
    let j = Math.floor(Math.random() * i);
    [a[i], a[j]] = [a[j], a[i]];
  }
  return a;
}