📜  按长度随机切割的数组 - Javascript (1)

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

按长度随机切割的数组 - Javascript

在开发中,我们有时需要将数组按照指定长度切割成多个小数组。而在某些情况下,我们需要将数组随机切割成多个小数组,这时候可以使用本文介绍的方法。

实现方式

我们可以先将数组打乱顺序,然后按照指定长度进行切割。这样可以保证最终生成的小数组是随机的。

下面是具体的实现方式:

function randomSlice(arr, size) {
  arr = arr.slice();
  arr.sort(() => Math.random() - 0.5);

  const result = [];

  while (arr.length) {
    result.push(arr.splice(0, size));
  }

  return result;
}

我们复制了一份原数组,然后利用 sort 方法打乱数组顺序(具体实现可以查看 Fisher-Yates shuffle)。然后利用 splice 方法将数组按照指定长度切割成多个小数组,一直循环切割直到原数组为空。

使用示例
const arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
const result = randomSlice(arr, 3);
console.log(result);
// => [[8, 7, 6], [1, 9, 2], [10, 3, 5], [4]]
总结

本文介绍了一种按长度随机切割数组的方法,广泛应用于各种场景中。我们通过将数组打乱顺序实现了随机切割的目的,同时将代码说明写清楚,方便使用者了解。