javascript - 有没有办法用已经将其转换为下划线来替换不是某个字符的所有字符
问题描述
对,所以我正在用 jQuery 做一个带有 html、CSS 和 JavaScript 的刽子手项目。
我所做的是将字符串转换为这样的下划线
var hidden_word;
hidden_word = aWord.replace(/[a-z]/gi, ' _ ');
$("#word").html(hidden_word);
然后稍后如果单击一个字母,它应该用正确的字母更改相应的下划线。
这就是我用它所做的(它不起作用,因为它只是将它全部转换回来)
if(aWord.includes(guess)){
for(var q=0; q<aWord.length; q++){
if (aWord[q] == guess){ indices.push(q+1); counter++;
$("#word").html(aWord.replace(/Q/g, ' Q '));
}
console.log(counter);
}
我做了一些研究,但实际上找不到任何东西。
关于如何制作它的任何想法,以便它转换字母所在的那个?
解决方案
aWord
一个简单的解决方案是将whereaWord
等于字符串的字母映射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);
推荐阅读
- jsoup - Jsoup 返回状态码 405(但它应该接受 POST)
- angular - 离子 4 的多个吐司
- arduino - 继电器 NC NO 引脚是否有不同的容量?
- angular - 对数据库的全局访问不起作用
- ssl - 从多个受信任的 CA 提供商处请求 ssl 证书是否会产生负面影响?
- sql - 如何将子查询结果(具有嵌套连接)与另一个表连接?
- vb.net - 嵌套列表/列表集合
- java - 出现键盘时 ScrollView 不起作用
- javascript - 如何将数据从一个html页面传递到另一个?
- python - 自定义 Spacy NER 模型的总体 F 分数与单个实体 F 分数之间的巨大差异