javascript indexOf无法检查数组中的相同数字
当我向数组中输入一个数字时,它会提醒消息“数字已被选择。请输入一个介于1和45之间的有效数字”javascript indexOf无法检查数组中的相同数字,javascript,Javascript,当我向数组中输入一个数字时,它会提醒消息“数字已被选择。请输入一个介于1和45之间的有效数字” 我想询问我是否在myNumber[0]中输入了一个数字,我调用checkNums函数,它将检测我输入myNumber[0]的数字是否已经在myNumber数组中,并对消息保持警惕?在插入之前检查该数字是否已经在数组中。例如: var number = new Array(); number[1] = document.getElementById("num1"); number[1].addEven
我想询问我是否在myNumber[0]中输入了一个数字,我调用checkNums函数,它将检测我输入myNumber[0]的数字是否已经在myNumber数组中,并对消息保持警惕?在插入之前检查该数字是否已经在数组中。例如:
var number = new Array();
number[1] = document.getElementById("num1");
number[1].addEventListener("change",function() { getNumbers(0); },false);
number[2] = document.getElementById("num2");
number[2].addEventListener("change",function() { getNumbers(1); },false);
number[3] = document.getElementById("num3");
number[3].addEventListener("change",function() { getNumbers(2); },false);
number[4] = document.getElementById("num4");
number[4].addEventListener("change",function() { getNumbers(3); },false);
number[5] = document.getElementById("num5");
number[5].addEventListener("change",function() { getNumbers(4); },false);
number[6] = document.getElementById("num6");
number[6].addEventListener("change",function() { getNumbers(5); },false);
function getNumbers(num) {
myNumbers[num] = parseInt(number[num+1].value);
if(!validNumber(myNumbers[num])) {
number[num+1].value="";
myNumbers[num]="";
}
}
function checkNums(Lotto, num) {
x=Lotto.indexOf(num);
if (x!=-1) {
return true;
}
return false;
}
var myNumbers = new Array();
function validNumber(num) {
if(checkNums(myNumbers, myNumbers[num])) {
alert("Number already chosen. Please enter a valid number between 1 and 45");
return false;
}
您的意思是将myNumbers[0]=10,然后再次调用该函数?它当然会发出警报。那么我如何使用checkNum函数来检查数组中已经存在的数字,而不检查我输入的数字呢?@TanYunShen:首先检查数字是否在数组中,然后仅当它不在数组中时才插入。@MattBurland找到了!谢谢=)
function getNumbers(num) {
var newNumber = parseInt(number[num+1].value, 10); // Note: it might be worth
// checking for NaN here as well
if (myNumbers.indexOf(newNumber) != -1) {
myNumbers[num] = newNumber;
}
else {
alert("Number already chosen. Please enter a valid number between 1 and 45");
number[num+1].value="";
}
}