2014-01-14 3 views
0

Я пытаюсь сделать палач в javascript, и я хочу проверить, использовал ли пользователь письмо. Я сделал var letterGuessValue = до 0, и если они добавят входной сигнал, то он = 1. Я знаю, что это будет знать все, если я его заработаю (он даже ничего не делает), но, может быть, я на правильном пути? Вот мой код. http://jsbin.com/aWOnAfe/5/editКак определить, был ли повторен вход пользователя?

+0

Пожалуйста, добавьте соответствующий код к вашему вопросу. –

ответ

1

Я бы сказал, добавьте ввод в список, и всякий раз, когда они добавляют другой вход (aka letter), проверьте этот список, чтобы увидеть, если он уже там. Если это так, то это потому, что они уже использовали это письмо раньше. Если нет, то это новое письмо.

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, то он используется.

Иногда разработчики склонны использовать массив для записи нажатых нажатий клавиш при выполнении комбинаций клавиш, но в этом случае повторение массива потребует как большего объема памяти, так и вычислительной мощности. Простой объект достаточно подходит.

+0

Спасибо, но на самом деле это просто повторяется и заставляет меня вынуждать покидать сафари. – 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; 
} 

Вы также можете использовать массив для хранения списка прессы, хотя ИМО, что это слишком много.

Смежные вопросы