我正在尝试创建一个带有名称的数组,然后使用for of循环迭代它们,然后使用if else语句检查迭代。我的代码在下面,但是它没有工作,我没有看到结果。我试过了,同样糟糕的结果。在Html文件中,我有一个带演示id的副部曲和一个具有迭代和检查数组功能的按钮。
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;
};发布于 2018-03-26 16:28:54
首先,您需要使用input获得.value的值,如注释中所述。
然后,要检查它在array中的存在,可以使用Array的内置方法之一,比如includes()或indexOf()。
这应该是您的代码:
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;
};演示:
这是一个演示:
function availableName() {
//const check = document.getElementById('userID').value;
const check = "cristina";
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;
};
availableName();<div id="available"></div>
发布于 2018-03-26 16:22:24
为什么不使用函数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;
};https://stackoverflow.com/questions/49496029
复制相似问题