Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.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 使用for of循环和if..else语句迭代并检查数组_Javascript_Arrays_Loops_If Statement - Fatal编程技术网

Javascript 使用for of循环和if..else语句迭代并检查数组

Javascript 使用for of循环和if..else语句迭代并检查数组,javascript,arrays,loops,if-statement,Javascript,Arrays,Loops,If Statement,我尝试用名称创建一个数组,然后使用for of循环迭代它们,然后使用if-else语句检查迭代。我的代码如下,但它没有工作,我没有看到任何结果。我试了几次,结果也一样。在Html文件中,我有一个带有演示id的paragraph和一个带有迭代和检查数组功能的按钮 function availableName() { const check = document.getElementById('userID'); const takenNames=['manuel','remus','manu

我尝试用名称创建一个数组,然后使用for of循环迭代它们,然后使用if-else语句检查迭代。我的代码如下,但它没有工作,我没有看到任何结果。我试了几次,结果也一样。在Html文件中,我有一个带有演示id的paragraph和一个带有迭代和检查数组功能的按钮

function availableName() {

 const check = document.getElementById('userID');
 const takenNames=['manuel','remus','manuel-remus','tomi','mirel'];
 const reservedNames=['cristina','angela','rusanda','costantin'];
 const givenNames=[...takenNames, ...reservedNames];

  for (givenName of givenNames) {
  if (givenName === check) {
      sayMessage=givenName +"Not available!";
 }
 else {
   sayMessage= givenName +"Available";
 }

 }
document.getElementById("available").innerHTML= sayMessage;
 };

为什么不使用isInArray函数呢

function isInArray(value, array) {
    return array.indexOf(value) > -1;
}

function availableName() {
const check = document.getElementById('userID');
 const takenNames=['manuel','remus','manuel-remus','tomi','mirel'];
 const reservedNames=['cristina','angela','rusanda','costantin'];
 const givenNames=[...takenNames, ...reservedNames];
for (givenName of givenNames) {
  if (isInArray(check, givenNames)) {
      sayMessage=givenName +"Not available!";
 }
 else {
   sayMessage= givenName +"Available";
 }

 }
document.getElementById("available").innerHTML= sayMessage;
 };

首先,您需要使用注释中所述的
.value
获取
输入的值

然后,要检查它在
数组中是否存在,可以使用的内置方法之一,例如

这是您的代码应该如何编写的:

function availableName() {
  const check = document.getElementById('userID').value;
  const takenNames = ['manuel', 'remus', 'manuel-remus', 'tomi', 'mirel'];
  const reservedNames = ['cristina', 'angela', 'rusanda', 'costantin'];
  const givenNames = [...takenNames, ...reservedNames];

  if (givenNames.indexOf(check) > 0) {
    sayMessage = check + " Not available!";
  } else {
    sayMessage = check + " Available";
  }
  document.getElementById("available").innerHTML = sayMessage;
};
演示:

这是一个演示:

函数可用名称(){
//const check=document.getElementById('userID')。值;
const check=“克里斯蒂娜”;
const takenNames=['manuel','remus','manuel remus','tomi','mirel'];
const reservedNames=['cristina','angela','rusanda','costantin'];
const givenNames=[…takenNames,…reservedNames];
如果(给定名称索引OF(检查)>0){
sayMessage=检查+“不可用!”;
}否则{
sayMessage=检查+“可用”;
}
document.getElementById(“可用”).innerHTML=sayMessage;
};
可用名称()

it
document.getElementById('userID')
应该是
document.getElementById('userID').value
如果userID是一个输入项
if(givenName==check.value)
,因为check实际上是一个dom元素,而不是元素本身的值。问题还不清楚。。给js提琴演示,到底什么是givenNames?对于上述示例,sayMessage的期望输出是什么。我已经在这里创建了js fiddle示例:-检查并修改this@maverick
givenNames
takenNames
resrevedNames
的组合。检查我的小提琴-我可以打印它