Javascript 是否有方法替换所有非';t已将某个字符转换为下划线
对,所以我正在用jQuery做一个带有html、CSS和JavaScript的hangman项目 我要做的是将字符串转换成如下下划线Javascript 是否有方法替换所有非';t已将某个字符转换为下划线,javascript,jquery,replace,Javascript,Jquery,Replace,对,所以我正在用jQuery做一个带有html、CSS和JavaScript的hangman项目 我要做的是将字符串转换成如下下划线 var hidden_word; hidden_word = aWord.replace(/[a-z]/gi, ' _ '); $("#word").html(hidden_word); 然后,如果单击一个字母,它应该用正确的字母更改相应的下划线 这就是我对它所做的(它不起作用,因为它只是将所有内容转换回来) if(aWord.inclu
var hidden_word;
hidden_word = aWord.replace(/[a-z]/gi, ' _ ');
$("#word").html(hidden_word);
然后,如果单击一个字母,它应该用正确的字母更改相应的下划线
这就是我对它所做的(它不起作用,因为它只是将所有内容转换回来)
if(aWord.includes(guess)){
对于(var q=0;q而言,一个简单的解决方案是将aWord
的字母映射到对象,其中aWord
等于字符串abc
,例如{A:“,”b:“,”c:”}
,然后您可以迭代该对象,每种类型的用户键入一些内容,然后返回其值,在返回之前,您可以检查该对象是否有用户键入的字母,然后您可以更新对象的值,或者使用相同的键设置当前值,这样当您再次返回时,UI将返回正确的结果,让我们举个例子乐:
const aWord = "abcdef"; // generated based on your logic
const mappings = {}; // initial empty object
aWord.split('').forEach((_, i) => mappings[aWord[i]] = '_'); // fill in the object with letters as keys and underscores as values by default
const guess = "f"; // coming from user
if (aWord.includes(guess)){ // if word has guessed letter, we update object
mappings[guess] = guess;
}
// mappings now will be => {a: "_", b: "_", c: "_", d: "_", e: "_", f: "f"}
console.log(mappings);
怎么做呢?我想我需要做的是替换所有的东西,但不确定。我似乎无法让它工作。我做错了什么,我就是不能指出什么是常量映射={};var sd;aWord.split(“”)。forEach((uo,I)=>mappings[aWord[sd]=''(让sd=0;sd@Tortoise41我重构了我的代码,希望你现在明白了Perfect是否可以将映射显示为HTML,例如,当他们说n正确时,它会显示n在下划线上的位置。你可以这样做Object.values(mappings).join(“”)
将映射打印为\uuuuuuuf
,每次发生事件时,让我们假设用户键入b
,这一次,结果将是\uuuuf
,依此类推;)别忘了将我的答案标记为正确。干杯
const aWord = "abcdef"; // generated based on your logic
const mappings = {}; // initial empty object
aWord.split('').forEach((_, i) => mappings[aWord[i]] = '_'); // fill in the object with letters as keys and underscores as values by default
const guess = "f"; // coming from user
if (aWord.includes(guess)){ // if word has guessed letter, we update object
mappings[guess] = guess;
}
// mappings now will be => {a: "_", b: "_", c: "_", d: "_", e: "_", f: "f"}
console.log(mappings);