sampleSize - 从数组中随机获取 n 个元素

Posted bali123

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sampleSize - 从数组中随机获取 n 个元素相关的知识,希望对你有一定的参考价值。

从 array 中获取 n 个唯一键随机元素。

使用Fisher-Yates算法 对数组进行打乱。 使用 Array.slice() 获取第一个 n 元素。 省略第二个参数,n 从数组中随机取得 1 个元素。

const sampleSize = ([...arr], n = 1) => {
  let m = arr.length;
  while (m) {
    const i = Math.floor(Math.random() * m--);
    [arr[m], arr[i]] = [arr[i], arr[m]];
  }
  return arr.slice(0, n);
};

sampleSize([1, 2, 3], 2); // [3,1]
sampleSize([1, 2, 3], 4); // [2,3,1]

以上是关于sampleSize - 从数组中随机获取 n 个元素的主要内容,如果未能解决你的问题,请参考以下文章

C#中如何从数组中获取一个随机数

使用c ++在每个循环中从数组中随机选择n个元素

java中怎么从一个数组中随机的取N个值

php中如果从一堆元素中随机出2个元素,举个例子:张三,李四,王五,刘六...有十个名字,

js实现从数组里随机获取元素

php中如何在数组中随机抽取n个数据的值