shuffle - 随机排列数组

优质
小牛编辑
129浏览
2023-12-01

随机排列指定数组的值,返回一个新的数组。

使用 Fisher-Yates 算法 对数组元素进行重新排序。

const shuffle = ([...arr]) => {
  let m = arr.length;
  while (m) {
    const i = Math.floor(Math.random() * m--);
    [arr[m], arr[i]] = [arr[i], arr[m]];
  }
  return arr;
};
const foo = [1, 2, 3];
shuffle(foo); // [2,3,1], foo = [1,2,3]