Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/468.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 是否有方法替换所有非';t已将某个字符转换为下划线_Javascript_Jquery_Replace - Fatal编程技术网

Javascript 是否有方法替换所有非';t已将某个字符转换为下划线

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

对,所以我正在用jQuery做一个带有html、CSS和JavaScript的hangman项目

我要做的是将字符串转换成如下下划线

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);