Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/434.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript indexOf无法检查数组中的相同数字_Javascript - Fatal编程技术网

javascript indexOf无法检查数组中的相同数字

javascript indexOf无法检查数组中的相同数字,javascript,Javascript,当我向数组中输入一个数字时,它会提醒消息“数字已被选择。请输入一个介于1和45之间的有效数字” 我想询问我是否在myNumber[0]中输入了一个数字,我调用checkNums函数,它将检测我输入myNumber[0]的数字是否已经在myNumber数组中,并对消息保持警惕?在插入之前检查该数字是否已经在数组中。例如: var number = new Array(); number[1] = document.getElementById("num1"); number[1].addEven

当我向数组中输入一个数字时,它会提醒消息“数字已被选择。请输入一个介于1和45之间的有效数字”


我想询问我是否在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="";
   }
}