js生成给定范围内的随机数

生成范围内随机数

公式:Math.floor(Math.random()*(max-min+1)+min);

举个例子:生成2-32之间的随机数,Math.floor(Math.random()*31+2)

顺带做个习题:用递归算法实现,数组长度为5且元素的随机数在2-32间不重复的值

var arr = new Array(5);
function insertRandom(n) {
  if (n < 0) return
  let tmp = Math.floor(Math.random() * 31 + 2)
  if (arr.indexOf(tmp) !== -1) return insertRandom(n)
  arr[n] = tmp
  return insertRandom(n - 1)
}
insertRandom(arr.length - 1)

给定范围和长度,生成数组

function createArray(len, minNum, maxNum) {
  var createRandom = (min, max) => { return (Math.round((max - min) * Math.random()) + min)};
  var arr = new Array(len), count = 0;
  function run() {
    var num = createRandom(minNum, maxNum);
    (!arr.includes(num)) && (arr[count] = num, count++);
    (count < len) && (run());
  }
  run(); return arr;
}
const a=createArray(5, 2, 32)
console.log(a);

  

 

posted @ 2020-11-13 11:22  阿炸  阅读(583)  评论(0)    收藏  举报