📌  相关文章
📜  javascript生成随机不同数字的数组 - Javascript(1)

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

JavaScript 生成随机不同数字的数组

在 JavaScript 中,有时你需要生成随机不同数字的数组。例如,你可能需要为一个游戏生成一组随机的秘密数字,或者需要对一组数据进行随机的排序。在本文中,我们将介绍如何使用 JavaScript 生成随机不同数字的数组。

使用 Set 对象来生成随机不同数字的数组

ES6 中引入了 Set 对象。它是一种无序且唯一的集合数据类型。你可以使用它来生成随机不同数字的数组。下面是一个示例代码:

const generateRandomArray = (min, max, length) => {
  const set = new Set();
  while (set.size < length) {
    set.add(Math.floor(Math.random() * (max - min + 1) + min));
  }
  return [...set];
}

这个函数接受三个参数。第一个参数是要生成的数字的最小值,第二个参数是最大值,第三个参数是要生成的数字的数量。函数首先创建一个 Set 对象。然后,它使用一个 while 循环来生成随机数字并将它们添加到 Set 对象中。最后,函数将 Set 对象转换为数组并返回。

使用递归函数来生成随机不同数字的数组

在 ES6 之前,没有 Set 对象。但是,你可以使用递归函数来生成随机不同数字的数组。下面是一个示例代码:

const generateRandomArray = (min, max, length, arr = []) => {
  const num = Math.floor(Math.random() * (max - min + 1) + min);
  return arr.length === length ? arr : arr.includes(num) ? generateRandomArray(min, max, length, arr) : generateRandomArray(min, max, length, [...arr, num]);
}

这个函数与上面的函数类似,但它使用递归函数来生成随机数字并将它们添加到一个数组中。这个函数接受四个参数。前三个参数与上面的函数相同。第四个参数是一个数组,用来存储生成的随机数字。函数首先生成一个随机数字。然后,它检查数组中是否包含这个数字。如果包含,它将继续递归调用函数。如果数组不包含这个数字,它将把它添加到数组中并再次递归调用函数。如果数组的长度达到了要求,函数将返回数组。

结论

JavaScript 提供了多种方法来生成随机不同数字的数组。无论你选择的方法是使用 Set 对象还是递归函数,你都可以快速生成一组随机的、不同的数字。