我正在制作一个函数,它将根据给定的范围和集合生成一个唯一的“x”数字。
示例
function randomizer(data) {
const dataRange = data && data.range
? data.range
: 5;
const dataSet = data && data.set
? data.set
: 5;
if (dataRange < dataSet) {
console.log('Range cannot be lower than the Set!');
return;
}
const randomizerRange = [];
for (let r = 1; r <= dataRange; r++) {
randomizerRange.push(r);
}
const randomizerSet = [];
let randomNumber;
for (let s = 1; s <= dataSet; s++) {
randomNumber = Math.floor((Math.random() * (dataRange - s)) + 1);
if (randomizerSet.includes(randomizerRange[randomNumber])) {
/*
make sure that the next number on randomizerSet is unique
this loop is crashing the browser ?
*/
let isUnique = false;
do {
randomNumber = Math.floor((Math.random() * (dataRange - s)) + 1);
if (!randomizerSet.includes(randomizerRange[randomNumber])) {
isUnique = true;
}
} while (!isUnique);
}
randomizerSet.push(randomizerRange[randomNumber]);
}
return randomizerSet;
}
我的问题是在 while
循环上,浏览器崩溃了 ?
我需要帮助来确保返回的数组永远不会有重复的值?谢谢。