我有一个功能。每当我调用该函数时,它应该返回一个UNIQUE(例如,如果我调用此函数90次,它应该给出90个不同的数字),随机数小于100。
我正在做
var randomNumber = Math.floor(Math.random() * 100);
但是,它并没有返回唯一的数字。它只返回随机数。
提前致谢。
修改 它应该在调用100次后返回一些警告。
答案 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;