我有一个数组中的关键字列表,当用户正确键入其中一个关键字时,我运行pass()函数。我检查用户在每个键输入后键入的内容(在键上)是否等于数组中的任何内容。看看字符串是否开始匹配另一个字符串
我这样做是通过在每个键上使用for循环来遍历数组,如果它匹配数组中的项,然后运行pass函数,但是如果它的长度或长度等于等于数组中的项目,并且已到达数组的末尾,然后运行失败函数。
这里是我的代码:
var keywords = new Array('', 'help', 'search', 'clock', 'folio', 'pong', 'simon');
for(var i=0; i<=(keywords.length)-1; i++){
if($('#code').val()===keywords[i]){
pass(i);
}
else if(($('#code').val().length>=keywords[i].length) && (i === (keywords.length)-1)){
fail();
}
}
现在,我遇到的是过早失效()执行的问题。当用户键入其中一个较长的关键字时,就会执行比其中一个较短的关键字更长的时间。
此外,对于一些关于打字'帮助'和'搜索'的研究都通过和失败运行?
无论如何,我想知道的是有没有一种方法来改善我的代码,以便更好地实现我想要做的和正确工作?
是否有可能检查用户输入的内容是否与某个关键字匹配,以及如果看起来他们正在拼写其中一个关键字,则不会失败(),但是当他们搞砸了拼写某些东西等于长度,但不是关键字,然后失败()。
例如:在我以前的代码中会导致失败,但是我现在正在尝试执行的操作不会直到用户键入诸如searck之类的东西。
为什么不使用['$ .inArray()'](http://api.jquery.com/jQuery.inArray/)? – Mottie