将字符串与数组值匹配

时间:2017-02-16 21:09:52

标签: javascript arrays matching

我试图建立一种登录系统,而我有一个字符串可以从用户输入获得,我想检查输入是否在特定的数组中......

到目前为止我得到了什么:

var name = $(".input").value();
var options = ["option_one", "option_two", "three"];
$(".submit").click(function() {

for(i=0; i < options.lenght; i++){
    if(options[i] == name){
        alert("true")
    }else{
        alert("false")
        }
}


});

任何人都可以帮助我吗?

编辑:CodePen

3 个答案:

答案 0 :(得分:2)

您可以像这样使用indexOf

if(options.indexOf(name) != -1){
    alert("valid")
}else{
    alert("false");
}

indexOf将从找到元素的数组返回索引(&gt; = 0),否则返回-1。

答案 1 :(得分:1)

使用javscript Array.prototype.some()函数:

var name = $(".input").value();
var options = ["option_one", "option_two", "three"];
if(options.some(el){
  return el == name;
}){
  alert("valid")
}else{
  alert("false");
}

参考:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/some

答案 2 :(得分:1)

更简单的方法 - 使用.includes()函数。

http://codepen.io/anon/pen/JEVBgN

&#13;
&#13;
var name = $(".input").val();
var options = ["option_one", "option_two", "three"];

console.log(options.includes(name) ? 'valid!' : 'invalid!');
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input class='input' value='three'>
&#13;
&#13;
&#13;