📜  javascript 随机洗牌数组 - Javascript (1)

📅  最后修改于: 2023-12-03 14:42:39.428000             🧑  作者: Mango

JavaScript 随机洗牌数组 - Javascript

在 JavaScript 中,有时候我们需要对数组进行随机排序,这就需要使用到数组洗牌算法。通过使用 JavaScript 实现数组随机洗牌算法,开发者们可以获得一个可以随时随地使用的代码片段,以实现对数组的随机排序。

实现步骤

我们可以通过以下步骤来实现 JavaScript 数组随机洗牌算法:

  1. 创建一个数组,用来保存随机输出的顺序。
  2. 遍历原始数组,每遍历一个元素就将其与随机位置上的元素进行交换。
  3. 将交换后的结果存储到保存随机输出顺序的数组中。
代码实现

下面是实现以上步骤的 JavaScript 代码片段,代码中默认使用 fisher-yates 洗牌算法:

function shuffleArray(array) {
  // 创建一个数组,用来保存随机输出的顺序
  const shuffledArray = array.slice();

  // 遍历原始数组,每遍历一个元素就将其与随机位置上的元素进行交换
  for (let i = shuffledArray.length - 1; i > 0; i--) {
    const j = Math.floor(Math.random() * (i + 1));
    [shuffledArray[i], shuffledArray[j]] = [shuffledArray[j], shuffledArray[i]];
  }

  // 将交换后的结果存储到保存随机输出顺序的数组中
  return shuffledArray;
}
使用方法

让我们用以下的原始数组来进行演示:

const originalArray = [1, 2, 3, 4, 5, 6, 7, 8, 9];

我们可以将 originalArray 数组传入 shuffleArray 函数,以得到一个随机排序后的数组:

const shuffledArray = shuffleArray(originalArray);
console.log(shuffledArray); // 随机输出的结果
总结

JavaScript 数组随机洗牌算法实现起来比较简单,但是也是必须要掌握的一个技能。我们通过使用 fisher-yates 洗牌算法来实现 JavaScript 数组随机洗牌,同时也提供了其它的洗牌算法供了解者深入了解。