我正在用JavaScript构建一个刽子手游戏.实际上是有react 的.除了我要支持多个单词之外,我让所有的东西都工作了.意思是,空格必须存在,但不能在逻辑上考虑,以确定游戏的完成.

下面的片段是我如何获得answer的,这是一个props ,基于键盘点击并拆分它来获得字符.然后,我映射字母,在map函数中,我对包含他们正在猜测的真实单词的correctedLetters属性值进行三元计算.

{answer.split('').map((letter, index) => {
    const l = letter.toUpperCase();
    return (
      <Text key={index} style={[{color: activeColors.textcolor}, styles.text]}>
        {correctLetters.includes(l) ? l : '-'}
      </Text>
    )
  })}

我想要做的是,根据答案是一个词还是两个词,显示两组或更多组破折号.请看这张图片,明白我的意思.中间的那条线只是一个空格.严格来说,我应该在这里赢

实际上有点像幸运之轮.

enter image description here

推荐答案

由于这个代码correctLetters.includes(l) ? l : '-',任何空格都将被转换为破折号,因此,如果答案包含两个单词,用户将永远不会获胜,因为我认为您正在判断破折号,以确定用户是赢是输.

您必须首先判断letter是一个真正的字母还是只是一个空格,因此,如果它是" ",您将添加一个空格,否则添加一个字母/破折号.

{answer.split('').map((letter, index) => {
    if (letter === " ") return <Text>{" "}</Text>

    const l = letter.toUpperCase();
    return (
      <Text key={index} style={[{color: activeColors.textcolor}, styles.text]}>
        {correctLetters.includes(l) ? l : '-'}
      </Text>
    )
})}

Javascript相关问答推荐

有条件的悲剧

警告!合同执行期间遇到错误[执行已恢复](Base Layer 2)

了解Node.js中的EventEums和浏览器中的addEventEums之间的关系

在react js中使用react—router—dom中的Link组件,分配的右侧不能被 destruct ''

空的结果抓取网站与Fetch和Cheerio

WebGL 2.0无符号整数输入变量

为什么Mutations 观察器用微任务队列而不是macrotask队列处理?

XSLT处理器未运行

IF语句的计算结果与实际情况相反

创建以键值对为有效负载的Redux Reducer时,基于键的类型检测

是否可以将Select()和Sample()与Mongoose结合使用?

Next.js无法从外部本地主机获取图像

为什么我的Navbar.css没有显示在本地主机页面上?

固定动态、self 调整的优先级队列

Promise.race()返回已解析的promise ,而不是第一个被拒绝的promise

限制数组中每个元素的长度,

如果查询为空,则MongoDB将所有文档与$in匹配

使用VITE开发服务器处理错误

递归地将JSON对象的内容上移一级

正在发出错误的URL请求