有没有一种方法可以简化if语句?

时间:2020-06-12 19:35:24

标签: javascript reactjs loops if-statement simplify

我试图主要简化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)
}

3 个答案:

答案 0 :(得分:3)

如何使用remainder operator %

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

答案 1 :(得分:1)

只需将余数取五。

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

答案 2 :(得分:1)

您可以使用除法残差(通过符号%取模)。例如,3%2返回3除以2的余数,在这种情况下为1。在您的条件中,您正在使用5的倍数,将除以1的余数除以5,保留余数的数字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
}