📅  最后修改于: 2023-12-03 15:05:12.574000             🧑  作者: Mango
在JavaScript中,shuffle数组是对数组顺序进行随机排列的方法。使用shuffle方法,可以将数组中的元素随机排序,使每次调用该方法生成的排序都是随机的。
shuffle方法的语法如下:
Array.shuffle()
该方法没有任何参数。
下面是shuffle方法的示例:
let arr = [1, 2, 3, 4, 5];
arr.shuffle();
console.log(arr);
输出:
[4, 1, 2, 5, 3]
下面是shuffle方法的实现:
Array.prototype.shuffle = function() {
for (let i = this.length - 1; i > 0; i--) {
const j = Math.floor(Math.random() * (i + 1));
[this[i], this[j]] = [this[j], this[i]];
}
}
该方法借助了Fisher-Yates算法,即每次从数组中随机选出一个元素,然后再与数组的最后一个元素交换位置。每交换一次,就将数组的长度减小1,以确保每个元素都有机会处于任意位置。
该方法会修改原始数组,而不是返回一个新数组,因此需谨慎使用。在使用该方法前,建议先备份原始数组。