如何检测用户输入是否已重复?

时间:2014-01-14 04:01:09

标签: javascript jquery

我正在尝试在javascript中创建hangman,我想检查用户是否已使用过一封信。我做了一个var letterGuessValue = 0,如果他们添加一个输入,它= 1.我知道如果我让它工作(它甚至没有做任何事情)就会知道所有事情但是我可能在正确的轨道上吗?这是我的代码。 http://jsbin.com/aWOnAfe/5/edit

4 个答案:

答案 0 :(得分:1)

我想说在列表中添加一个输入,每当他们添加另一个输入(也就是字母)时,请检查此列表以查看它是否已存在。如果是,那么因为他们之前已经使用过那封信。如果没有,那就是一封新信。

答案 1 :(得分:0)

我不知道困难的部分在哪里。

http://jsfiddle.net/DerekL/jgqQ9/

示例代码

var used = {};
$("input").keyup(function(){
    var val = this.value;
    alert( used[val] ? "Used" : "Not used" );
    this.value = "";
    used[val] = true;
});

工作原理

输入信件时将true分配给used.LETTER。在分配之前,如果它是undefined,那么它还没有被使用。如果是true则使用它。

有时开发人员在进行组合键时会倾向于使用数组来记录按键击键,但在这种情况下,迭代数组会需要更多的内存和计算能力。一个简单的对象就足够了。

答案 2 :(得分:0)

使用数组存储所有使用过的字母和函数,以添加新字母。

var inputs = []

function addLetter(letter){
   var used = false;
   for(var i = 0; i < inputs.length; i++){
       if(inputs[i] == letter){
           used = true;   
           break; 
       }
   }
   if(!used){
       inputs.push(letter);
   }
}

答案 3 :(得分:0)

最简单的方法是将每个字母附加到字符串,如下所示:

var letters = '';
var letterPressed = 'X'; // uppercase it if appropriate for your language

if (letters.indexOf(letterPressed) > -1)
{
    // you already pressed it
}
else
{
    letters += letterPressed;
}

您也可以使用数组来存储您的印刷机列表,尽管IMO太过分了。