2017-08-31 69 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 =>' - ') '用'-'替换数组中的每个字符。 –

相关问题