Javascript 使用for of循环和if..else语句迭代并检查数组
我尝试用名称创建一个数组,然后使用for of循环迭代它们,然后使用if-else语句检查迭代。我的代码如下,但它没有工作,我没有看到任何结果。我试了几次,结果也一样。在Html文件中,我有一个带有演示id的paragraph和一个带有迭代和检查数组功能的按钮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
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;
};
可用名称()代码>
itdocument.getElementById('userID')
应该是document.getElementById('userID').value
如果userID是一个输入项if(givenName==check.value)
,因为check实际上是一个dom元素,而不是元素本身的值。问题还不清楚。。给js提琴演示,到底什么是givenNames?对于上述示例,sayMessage的期望输出是什么。我已经在这里创建了js fiddle示例:-检查并修改this@maverickgivenNames
是takenNames
和resrevedNames
的组合。检查我的小提琴-我可以打印它