2017-02-16 12 views
0

Я пытаюсь создать систему входа в систему, тогда как у меня будет строка, которая будет получена от пользовательского ввода, и я хочу проверить, находится ли этот вход в определенном массиве ...Согласование строки со значениями массива

Что я получил до сих пор:

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") 
     } 
} 


}); 

Может кто-нибудь помочь мне?

EDIT: CodePen

ответ

1

метод проще - использовать .includes() функцию.

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

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

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

+0

всегда предупреждает ложные: C – Miguel

+0

@Miguel еще раз проверьте. Введите «три» и нажмите кнопку клика. –

+0

переменные должны быть локальными, чтобы они работали? – Miguel

2

Вы можете использовать indexOf так:

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

indexOf возвращает индекс (> = 0) из массива, где находится элемент, -1 в противном случае.