js 从范围内,取出一组数

js 如何从一个范围的数据中,如 (1 ~30) 中, 随机取出几个数, 生成一个数组

阅读 2.1k
2 个回答

能重复还是不能重复?这叫做sample random,网上很容易搜到。下面是stackflow上的问题:

function getRandomSubarray(arr, size) {
    var shuffled = arr.slice(0), i = arr.length, temp, index;
    while (i--) {
        index = Math.floor((i + 1) * Math.random());
        temp = shuffled[index];
        shuffled[index] = shuffled[i];
        shuffled[i] = temp;
    }
    return shuffled.slice(0, size);
}

var x = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15];
var fiveRandomMembers = getRandomSubarray(x, 5);
function getRandomArray(min, max, length){
      let array = [];
      for (let i = 0; i < length; i++){
        let Range = max - min;
        let Rand = Math.random();
        let num = min + Math.round(Rand * Range);
            array.push(num);
      }
      return array
}

min 最小 max 最大 length 生成数组长度

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题