2014-01-14 87 views
0

我正在試圖在JavaScript中使hang子手,我想檢查用戶是否已經使用了一封信。我做了一個var letterGuessValue = 0,如果他們添加一個輸入it = 1。我知道這將告訴我如何使它工作(它甚至沒有做任何事情),但是我在正確的軌道上嗎?這是我的代碼。 http://jsbin.com/aWOnAfe/5/edit如何檢測用戶輸入是否重複?

+0

請將相關的代碼添加到您的問題。 –

回答

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

它是如何工作

分配trueused.LETTER輸入一個字母時。但在分配之前,如果是undefined那麼它尚未使用。如果它是true那麼它被使用。

有時開發人員在做組合鍵時傾向於使用數組來記錄按下的按鍵,但在這種情況下,迭代數組需要更多的內存和計算能力。一個簡單的對象是一個足夠的適合。

+0

謝謝,但實際上這只是重複,使我不得不強制退出safari – Veronica

+0

@Veronica - 不要按'enter'關閉警報。 –

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

你也可以使用一個數組來存儲你的印刷機的名單,雖然國際海事組織這是矯枉過正。