检查输入值是否与数组项匹配

时间:2019-05-02 17:10:10

标签: javascript

我有一些项目的数组,这些都是可能的密码,并且代码有效,但只能使用其中之一。如何使它与数组中的所有项目一起使用?

我尝试写作   如果(input.value == password [0,1,2,3,4,5]) 但这不起作用

input1是文本字段的ID, button是按钮的ID, 这是脚本:

    var password = new Array("pass1", "pass2", "pass3", "pass4", "pass5");
    var input = document.getElementById("input1");
    var button = document.getElementById("button");
    button.addEventListener("click", function () {
        for (var x = 0; x <= password.length; x++) {
            if (input.value == password[0]) {
                document.write("welcome");
                break;
            } else
                alert("wrong");
            break;
        }

    })

5 个答案:

答案 0 :(得分:2)

您需要检查数组的元素,并在欢迎之后返回是否找到该值。

在循环后将错误的警报置于末尾,因为对于每个不匹配的密码,您都会收到更多警报​​。

CREATE VIEW availability_groups_compat
AS
  SELECT ca.*
  FROM   (VALUES(CAST(NULL AS BIT))) OptionalColumns(is_distributed)
         CROSS APPLY (SELECT group_id,
                             name,
                             resource_id,
                             resource_group_id,
                             failure_condition_level,
                             health_check_timeout,
                             automated_backup_preference,
                             automated_backup_preference_desc,
                             version,
                             basic_features,
                             dtc_support,
                             db_failover,
                             is_distributed,
                             cluster_type,
                             cluster_type_desc,
                             required_synchronized_secondaries_to_commit,
                             sequence_number
                      FROM   sys.availability_groups) ca 

答案 1 :(得分:1)

一种可能的解决方案是使用Array.includes()替换整个for loop,例如:

let password = new Array("pass1", "pass2", "pass3", "pass4", "pass5");
let button = document.getElementById("button");
let input = document.getElementById("input1");

button.addEventListener("click", function()
{
    if (password.includes(input.value))
        alert("welcome");
    else
        alert("wrong");
});
<input type="text" id="input1">
<button type="button" id="button">Button</button>

答案 2 :(得分:0)

只需将if (input.value == password[0])替换为if (input.value == password[x])即可检查重复的密码。

答案 3 :(得分:0)

尝试一下:

答案 4 :(得分:0)

您不需要循环即可进行检查。尝试indexOf查找是否存在值:

button.addEventListener("click", function () {
  if (passwords.indexOf(input.value) !== -1) {
    alert("welcome");
  } else {
    alert("wrong");
  }
})