2017-08-31 72 views
1
document.onkeyup = function(event){ 
    if(answer.indexOf(event.key) > -1){ 
    console.log(answer.indexOf(event.key)); 
    console.log(typeof event.key); 
    //cover[answer.indexOf(event.key)] = event.key; this doesnt work 
    //cover.replace(cover[answer.indexOf(event.key)],event.key); this doesnt 
    work 
    console.log(cover); 
    } 
} 

我有一個字符串,看起來像這樣:「-------」代表相同的隱藏答案長度。當用戶點擊答案字符串中的一個鍵時,我希望該字符在相同索引處出現在隱藏字符串中。試圖用相應的索引中的另一個字符串的字符替換字符串的索引

+0

還能有比單一顯示字符更多一次(或者是你只顯示剛按下鍵的當前盤符)? –

+0

其hangman ..更正確的條目,更多的字符串將出現 – cerrach

回答

1

var answer = 'correcthorsebatterystaple'; 
 
// generate an array of '-' the same length as the answer 
 
var cover = answer.split('').map(x => '-'); 
 
document.getElementById('c').innerText = cover.join(''); 
 

 
document.onkeyup = function(e) { 
 
    var key = e.key; 
 
    for (var i = 0; i < cover.length; i++) { 
 
    // for each instance of the pressed letter in the answer, replace the corresponding dash(es) in cover 
 
    if (answer[i] === key) cover[i] = key; 
 
    } 
 
    document.getElementById('c').innerText = cover.join(''); 
 
}
<span id="c" style="font-family:monospace"></span>

+0

你能解釋第二行。我可以理解它的目的,但是如果你可以分解它,那將會很棒 – cerrach

+1

'answer.split('')'將字符串分割成一個字符數組,並且'.map(x =>' - ') '用'-'替換數組中的每個字符。 –

相關問題