📜  shuffle 数组 javascript (1)

📅  最后修改于: 2023-12-03 15:05:12.574000             🧑  作者: Mango

JavaScript中的数组shuffle方法

在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,以确保每个元素都有机会处于任意位置。

注意事项

该方法会修改原始数组,而不是返回一个新数组,因此需谨慎使用。在使用该方法前,建议先备份原始数组。