如何检查数组中的值

时间:2017-06-28 02:11:25

标签: javascript arrays

我想创建一个简单的Javascript登录网站。在这个网站中,我想检查数组中是否存在用户名。虽然我对Javascript语法还不熟悉,但我仍想尝试一下,但我失败了。
这是我失败的尝试:



// List of username's I want to block (aka. give error if they enter a username existing in this list)
var unAllowedUserNames = ["snapchat", "instagram", "youtube", "cocacola", "christoffer"]; /*5*/
// The username they enter
var username = document.getElementById("username");

// A simple function that alerts whether their username is valid or not
function validate() {
  // If username.value exists in unAllowedUserNames (index 1 though 4)
  if (username.value == unAllowedUserNames[0, 1, 2, 3, 4]) {
    alert("Unallowed username!")
  } else {
    alert("Okay")
  }
}

<label for="username">Username:</label><input type="text" id="username"><br>

/* Ignore this specific field, it is unnecessary */
<label for="password">Password:</label><input type="text" id="password"><br>

<input type="button" value="Register" onclick="validate()">
&#13;
&#13;
&#13;

我是什么&#34;期待&#34; /我想要实现的目标:
if (username.value == unAllowedUserNames[0, 1, 2, 3, 4]) {将遍历方括号([0, 1, 2, 3, 4])中定义的索引,并根据结果返回true或false(结果是,输入的用户名是否为username.value)是在数组的任何索引中找到)

我知道我可以创建一个遍历数组中所有值的循环,并在用户名与任何值匹配时执行一些代码。它技术上工作,但效率非常低,我敢打赌它有更好的功能,而且不使用静态值。

那么有什么功能可以帮助我在简单快速的事情上实现我的目标吗?

2 个答案:

答案 0 :(得分:2)

您无法检查数组中的元素。

试试这个:

function validate() {
  if (unAllowedUserNames.indexOf(username.value)>-1) {
    alert("Unallowed username!");
  } else {
    alert("Okay");
  }
}

答案 1 :(得分:0)

function validate() {
    if (unAllowedUserNames.indexOf(username.value) !== -1 ) {
        alert("Unallowed username!")
    } else if (unAllowedUserNames.indexOf(username.value) === -1) {
        alert("Okay")
    }
}