有没有办法简化 if 语句?

Is there a way to simplify if statements?

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

取五的余数即可

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

如何使用 remainder operator %:

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

您可以使用除法余数(通过符号 % 取模)。例如,3% 2 returns 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
}