我正在試圖在JavaScript中使hang子手,我想檢查用戶是否已經使用了一封信。我做了一個var letterGuessValue = 0,如果他們添加一個輸入it = 1。我知道這將告訴我如何使它工作(它甚至沒有做任何事情),但是我在正確的軌道上嗎?這是我的代碼。 http://jsbin.com/aWOnAfe/5/edit如何檢測用戶輸入是否重複?
回答
我會說添加一個輸入到列表中,並且每當他們添加另一個輸入(又名字母)時,請檢查此列表以查看它是否已經存在。如果是這樣,那麼它是因爲他們之前已經使用過那封信。如果不是,那麼這是一封新信。
我看不出困難部分在哪裏。
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
那麼它被使用。
有時開發人員在做組合鍵時傾向於使用數組來記錄按下的按鍵,但在這種情況下,迭代數組需要更多的內存和計算能力。一個簡單的對象是一個足夠的適合。
謝謝,但實際上這只是重複,使我不得不強制退出safari – Veronica
@Veronica - 不要按'enter'關閉警報。 –
使用數組來存儲所有使用的字母,並像這樣添加新的函數。
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);
}
}
最簡單的方法是將每個字母添加到一個字符串,像這樣:
var letters = '';
var letterPressed = 'X'; // uppercase it if appropriate for your language
if (letters.indexOf(letterPressed) > -1)
{
// you already pressed it
}
else
{
letters += letterPressed;
}
你也可以使用一個數組來存儲你的印刷機的名單,雖然國際海事組織這是矯枉過正。
- 1. 檢測用戶是否正在輸入
- 2. 檢測用戶是否輸入了UITextField
- 3. 如何檢測用戶是否在Java中使用jTextpane輸入
- 4. 如何檢測用戶輸入是否爲域名?
- 5. 如何檢測用戶是否停止在EditText中輸入android
- 6. 如何檢測用戶是輸入法的中途輸入?
- 7. 檢測用戶是否複製UITextView
- 8. 如何檢測用戶輸入的c#
- 9. 檢測用戶是否沒有輸入任何東西/刪除輸入jQuery
- 10. 如何檢查用戶輸入與否?
- 11. C++檢測用戶是否輸入字符串而不是輸入
- 12. 如何讓Vim測試用戶輸入是否是整數?
- 13. 檢查用戶是否輸入整數
- 14. 檢查用戶輸入是否有效
- 15. 檢查用戶輸入是否適合
- 16. 如何檢查用戶輸入是否是雙精度?
- 17. 如何檢查用戶輸入是否是某個基地?
- 18. 如何檢查重複文本的用戶輸入
- 19. 檢測用戶是否在html網站上輸入了比賽
- 20. Select2搜索檢測用戶是否正在輸入
- 21. Flex 4檢測用戶是否按下輸入鍵
- 22. 重複用戶輸入
- 23. 如何在輸入時檢查用戶名是否被使用?
- 24. 使用jQuery來測試用戶是否輸入了輸入?
- 25. 檢測文件是否重複,如果不是,則重命名
- 26. 如何檢測輸入csv文件是否嵌入了引號?
- 27. 如何檢測用戶是否已完成嵌入式Typeform?
- 28. 如何檢測用戶是否進入空格鍵?
- 29. 檢測輸入流是否收縮
- 30. 檢測輸入是否有焦點
請將相關的代碼添加到您的問題。 –