一段时间以来,我一直在尝试使用IF语句来解决这个问题,但我不再认为这可能是最好的方法,并且不确定现在要尝试什么。
我有6个随机生成的输入值。前5个从其各自的名称列表中拉出随机名称,第6个从所有组合的列表中拉出随机名称。这应该是包含所有名称的单独数组,还是有办法组合数组?
另一个问题是第6个输入需要保持随机化,直到其输入值不等于前5个输入中的任何一个。
请让我知道您将如何对照其他5个值检查第6个值,然后继续获取新值。
感谢所有帮助
function getRandom1()
{
var names = [
'Red1',
'Blue1',
'Green1'
];
return names[Math.floor(Math.random() * names.length)];
}
function getRandom2()
{
var names = [
'Red2',
'Blue2',
'Green2'
];
return names[Math.floor(Math.random() * names.length)];
}
function getRandom3()
{
var names = [
'Red3',
'Blue3',
'Green3'
];
return names[Math.floor(Math.random() * names.length)];
}
function getRandom4()
{
var names = [
'Red4',
'Blue4',
'Green4'
];
return names[Math.floor(Math.random() * names.length)];
}
function getRandom5()
{
var names = [
'Red5',
'Blue5',
'Green5'
];
return names[Math.floor(Math.random() * names.length)];
}
function getRandomX()
{
var names = [
'Red1',
'Blue1',
'Green1',
'Red2',
'Blue2',
'Green2',
'Red3',
'Blue3',
'Green3',
'Red4',
'Blue4',
'Green4',
'Red5',
'Blue5',
'Green5'
];
return names[Math.floor(Math.random() * names.length)];
}
function myFunction() {
document.getElementById("input_1").value =( getRandom1() );
document.getElementById("input_2").value =( getRandom2() );
document.getElementById("input_3").value =( getRandom3() );
document.getElementById("input_4").value =( getRandom4() );
document.getElementById("input_5").value =( getRandom5() );
document.getElementById("input_X").value =( getRandomX() );
}
<body onload="myFunction(), myFunction2()">
<select onchange="myFunction(), myFunction2()" id="select">
<option value="1"> 1 </option>
<option value="2"> 2 </option>
<option value="3"> 3 </option>
<option value="4"> 4 </option>
<option value="5"> 5 </option></select>
<br>
1 <input type="text" id="input_1"/><br>
2 <input type="text" id="input_2"/><br>
3 <input type="text" id="input_3"/><br>
4 <input type="text" id="input_4"/><br>
5 <input type="text" id="input_5"/><br>
X <input type="text" id="input_X"/>
答案 0 :(得分:1)
这不是一个很好的解决方案,但是您可以执行“ while”循环,该循环将第6个输入随机化,直到其不同为止。
function myFunction() {
var input1 = getRandom1();
var input2 = getRandom2();
var input3 = getRandom3();
var input4 = getRandom4();
var input5 = getRandom5();
var input6 = getRandomX();
document.getElementById("input_1").value = input1;
document.getElementById("input_2").value = input2;
document.getElementById("input_3").value = input3;
document.getElementById("input_4").value = input4;
document.getElementById("input_5").value = input5;
while (input6==input1 || input6==input2 || input6==input3 || input6==input4 || input6==input5) {
input6 = getRandomX();
}
document.getElementById("input_X").value = input6;
}
一种更好的方法是在随机选择前5个输入后生成第6个输入的名称数组,因此它将不包含先前选择的值。