思路
- 循环数组
- 随机获取数组下标
- 取值:
- 取当前随机下标数组
- 取当前循环的下标数组
- 相互替换步骤3的数组
/**
* 随机数组顺序
* @param {Array} arr 数组
* @returns Array
*/
const shufArr = arr => {
for (let i = arr.length - 1; i > 0; i--) {
const j = Math.floor(Math.random() * (i + 1));
[arr[i], arr[j]] = [arr[j], arr[i]];
}
return arr
}
console.log(shufArr([1, 2, 3, 4, 5])); // [ 5, 1, 2, 3, 4 ]