随机排列指定数组的值,返回一个新的数组。
使用 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]