每按一次按钮,生成一个1到100范围内的唯一随机数 - JavaScript

时间:2017-04-28 19:09:07

标签: javascript math

我有一个功能。每当我调用该函数时,它应该返回一个UNIQUE(例如,如果我调用此函数90次,它应该给出90个不同的数字),随机数小于100。

我正在做

var randomNumber = Math.floor(Math.random() * 100);

但是,它并没有返回唯一的数字。它只返回随机数。

提前致谢。

修改 它应该在调用100次后返回一些警告。

1 个答案:

答案 0 :(得分:5)

每次调用时,制作一个包含100个数字的数组:



var unique = (function() {                             // wrap everything in an IIFE
  var arr = [];                                        // the array that contains the possible values
  for(var i = 0; i < 100; i++)                         // fill it
    arr.push(i);
  
  return function() {                                  // return the function that returns random unique numbers
    if(!arr.length)                                    // if there is no more numbers in the array
      return alert("No more!");                        // alert and return undefined
    
    var rand = Math.floor(Math.random() * arr.length); // otherwise choose a random index from the array
    return arr.splice(rand, 1) [0];                    // cut out the number at that index and return it
  };
})();

console.log(unique());
console.log(unique());
console.log(unique());
console.log(unique());
&#13;
&#13;
&#13;