我想知道如何从数组中随机选择一个数字。该编号必须事先从html格式的列表中选择,例如以下所示。例如,如果我选择数字“ 05”,则希望将其从随机选择过程中排除。 我还附加了随机选择的js代码。 谢谢。
<SELECT ID="elegirNombre" NAME="elección">
<OPTION ID="01" VALUE="01">01</OPTION>
<OPTION ID="02" VALUE="02">02</OPTION>
<OPTION ID="03" VALUE="03">03</OPTION>
<OPTION ID="04" VALUE="04">04</OPTION>
<OPTION ID="05" VALUE="05">05</OPTION>
<OPTION ID="06" VALUE="06">06</OPTION>
<OPTION ID="07" VALUE="07">07</OPTION>
<OPTION ID="08" VALUE="08">08</OPTION>
<OPTION ID="09" VALUE="09">09</OPTION>
</SELECT><BR /><BR />
var bunchofnumbers = ['01', 'C02', '03', '04', '05', '06', '07', '08', '09'];
var rand = bunchofnumbers[Math.floor(Math.random() * bunchofnumbers.length)];
alert("Your number is: " + rand) ;
答案 0 :(得分:0)
您可以使用此代码从数组中删除不想选择的元素
var index = bunchofnumbers.indexOf('element you dont want');
if (index > -1) {
bunchofnumbers.splice(index, 1);
}
bunchofnumbers
然后将没有该元素,因此将不会被选择。您可以随时根据需要复制原始数组。
答案 1 :(得分:0)
解决方案:
以下代码选择随机元素并删除所选元素。
let bunchofnumbers = ['01', '02', '03', '04', '05', '06', '07', '08', '09'];
let randIndex = Math.floor(Math.random() * bunchofnumbers.length);
let valueChosen = bunchofnumbers[randIndex];
bunchofnumbers.splice(randIndex, 1); // removes chosen value from array
alert("Chosen/removed element is: " + valueChosen + " (bunchofnumbers: " + bunchofnumbers + ")");
答案 2 :(得分:0)
您可以编写排除函数,例如:
function randomExcludedNumber(numLength, excludeNumber) {
var randNumber = excludeNumber;
While(randNumber == excludeNumber)
{
randNumber = Math.floor(Math.random() * numLength)
}
return randNumber ;
}
然后您可以像使用它:
var bunchofnumbers = ['01', 'C02', '03', '04', '05', '06', '07', '08', '09']
var selectedIndex = bunchofnumbers.indexOf("04"); //get selected value index
var randomNum = randomExcludedNumber(bunchofnumbers.length, selectedIndex );
var rand = bunchofnumbers[randomNum];
alert("Your number is: " + rand) ;
这是一个有效的演示:Fiddle