【问题标题】:Is there a way to simplify if statements?有没有办法简化 if 语句?
【发布时间】:2020-06-12 19:35:24
【问题描述】:

我试图主要简化 if 语句。如您所见,我将文本着色并且这种方式有效,但是 if 语句中有很多重复的代码。任何帮助将不胜感激,谢谢。

const colorText = ( message, colorr ) => {
    let mesge = []


    for (let i = 0; i < message.length; i++){

        //TRYING TO SIMPLIFY THIS CODE BELOW\\//TRYING TO SIMPLIFY THIS CODE BELOW\\
        //TRYING TO SIMPLIFY THIS CODE BELOW\\//TRYING TO SIMPLIFY THIS CODE BELOW\\
        if(i===0 || i===5 || i===10 || i===15 || i===20) {colorr[i] = colorr[0]}
        if(i===1 || i===6 || i===11 || i===16 || i===21) {colorr[i] = colorr[1]} 
        if(i===2 || i===7 || i===12 || i===17 || i===22) {colorr[i] = colorr[2]} 
        if(i===3 || i===8 || i===13 || i===18 || i===23) {colorr[i] = colorr[3]} 
        if(i===4 || i===9 || i===14 || i===19 || i===24) {colorr[i] = colorr[4]} 

       mesge[i] = (
        <span style={{ color: colorr[i]}}>
            {message[i]}
        </span>
       )

    }
    return mesge
    // console.log(message)
    // console.log(color)
}

【问题讨论】:

    标签: javascript reactjs loops if-statement simplify


    【解决方案1】:

    使用remainder operator %怎么样:

    colorr[i] = colorr[i % 5];
    

    【讨论】:

      【解决方案2】:

      您可以使用除法的余数(模数通过符号 %)。例如,3% 2 返回 3 除以 2 的余数,在本例中为 1。在您的条件句中,您使用 5 的倍数,除以 5 时余数为 1 的数字,余数为2 除以 5 等等......这样代码看起来像这样:

      const colorText = ( message, colorr ) => {
          let mesge = []
          for (let i = 0; i < message.length; i++){
              colorr[i] = color[i % 5]
             mesge[i] = (
              <span style={{ color: colorr[i]}}>
                  {message[i]}
              </span>
             )
          }
          return mesge
      }

      【讨论】:

      • 这是相对的,它属于答案的作者。例如,在我看来,由于这个问题,我发现它是必要的。不要打扰它;)
      • 不,这不是相对的。您重复了整个 sn-p 并且很难找出发生了什么变化。但欢迎来到 Stack Overflow :)
      • @RoboRobok 我非常不同意。这个答案是唯一一个解释发生了什么以及它为什么起作用的答案。
      • @Junaid Razaq 非常感谢答案,好好学习! :)
      【解决方案3】:

      只需用五取余数。

      colorr[i] = colorr[i % 5];
      

      【讨论】:

      • 你的意思是colorr[i] = colorr[i % 5]
      • @RoboRobok 怎么来的?
      • @evolutionxbox 因为原始代码就是这样做的。
      猜你喜欢
      • 2020-11-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-30
      • 2020-11-17
      • 2020-06-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多