How can I optimize my code? [closed]

2

Iwouldliketooptimizemycode,butIdonotknowhowtodoit.Ithastoproducearesultjustliketheoneinthetableabove.

Code:

functioncalcular(){abiscissa=document.getElementById('ab').value;ordenada=document.getElementById('or').value;//Ordenada-1if(abiscissa==+3&&ordenada==-1){alert("160/150");
        } else if (abiscissa == +2 && ordenada == -1) {
            alert("160/150");
        } else if (abiscissa == +1 && ordenada == -1) {
            alert("160/150");
        } else if (abiscissa == 0 && ordenada == -1) {
            alert("160/150");
        } else if (abiscissa == -1 && ordenada == -1) {
            alert("160/150");
        } else if (abiscissa == -2 && ordenada == -1) {
            alert("210/150");
        } else if (abiscissa == -3 && ordenada == -1) {
            alert("210/200");
        } else if (abiscissa == -4 && ordenada == -1) {
            alert("160/150 \n160/200");
        } else if (abiscissa == -5 && ordenada == -1) {
            alert("160/200 \n160/250");
        } else if (abiscissa == -6 && ordenada == -1) {
            alert("160/250 \n160/300");
        } else if (abiscissa == -7 && ordenada == -1) {
            alert("160/250 \n160/300");
        } else if (abiscissa == -8 && ordenada == -1) {
            alert("160/300 \n160/350");
        }

        // Ordenada -2
          else if (abiscissa == -8 && ordenada == -2) {
            alert("160/150");
        } else if (abiscissa == +2 && ordenada == -2) {
            alert("160/150");
        } else if (abiscissa == +1 && ordenada == -2) {
            alert("160/150");
        } else if (abiscissa == 0 && ordenada == -2) {
            alert("160/150");
        } else if (abiscissa == -1 && ordenada == -2) {
            alert("160/150");
        } else if (abiscissa == -2 && ordenada == -2) {
            alert("210/150");
        } else if (abiscissa == -3 && ordenada == -2) {
            alert("210/200");
        } else if (abiscissa == -4 && ordenada == -2) {
            alert("210/200");
        } else if (abiscissa == -5 && ordenada == -2) {
            alert("160/150 \n160/250");
        } else if (abiscissa == -6 && ordenada == -2) {
            alert("160/200 \n160/300");
        } else if (abiscissa == -7 && ordenada == -2) {
            alert("160/200 \n160/300");
        } else if (abiscissa == -8 && ordenada == -2) {
            alert("160/250 \n150/350");
        }

        // Ordenada -3
          else if (abiscissa == -8 && ordenada == -3) {
            alert("160/200");
        } else if (abiscissa == +2 && ordenada == -3) {
            alert("160/200");
        } else if (abiscissa == +1 && ordenada == -3) {
            alert("160/200");
        } else if (abiscissa == 0 && ordenada == -3) {
            alert("160/200");
        } else if (abiscissa == -1 && ordenada == -3) {
            alert("160/200");
        } else if (abiscissa == -2 && ordenada == -3) {
            alert("210/200");
        } else if (abiscissa == -3 && ordenada == -3) {
            alert("210/200");
        } else if (abiscissa == -4 && ordenada == -3) {
            alert("210/250");
        } else if (abiscissa == -5 && ordenada == -3) {
            alert("210/250");
        } else if (abiscissa == -6 && ordenada == -3) {
            alert("210/300");
        } else if (abiscissa == -7 && ordenada == -3) {
            alert("210/300");
        } else if (abiscissa == -8 && ordenada == -3) {
            alert("210/300");
        }

        // Ordenada -4
          else if (abiscissa == -8 && ordenada == -4) {
            alert("160/250");
        } else if (abiscissa == +2 && ordenada == -4) {
            alert("160/250");
        } else if (abiscissa == +1 && ordenada == -4) {
            alert("160/250");
        } else if (abiscissa == 0 && ordenada == -4) {
            alert("160/250");
        } else if (abiscissa == -1 && ordenada == -4) {
            alert("160/250");
        } else if (abiscissa == -2 && ordenada == -4) {
            alert("160/250");
        } else if (abiscissa == -3 && ordenada == -4) {
            alert("160/300");
        } else if (abiscissa == -4 && ordenada == -4) {
            alert("120/150 \n160/300");
        } else if (abiscissa == -5 && ordenada == -4) {
            alert("120/150 \n160/300");
        } else if (abiscissa == -6 && ordenada == -4) {
            alert("120/150 \n160/300");
        } else if (abiscissa == -7 && ordenada == -4) {
            alert("120/250 \n160/350");
        } else if (abiscissa == -8 && ordenada == -4) {
            alert("120/250 \n160/350");
        }

        // Ordenada -5
          else if (abiscissa == -8 && ordenada == -5) {
            alert("");
        } else if (abiscissa == +2 && ordenada == -5) {
            alert("");
        } else if (abiscissa == +1 && ordenada == -5) {
            alert("");
        } else if (abiscissa == 0 && ordenada == -5) {
            alert("");
        } else if (abiscissa == -1 && ordenada == -5) {
            alert("");
        } else if (abiscissa == -2 && ordenada == -5) {
            alert("");
        } else if (abiscissa == -3 && ordenada == -5) {
            alert("");
        } else if (abiscissa == -4 && ordenada == -5) {
            alert("");
        } else if (abiscissa == -5 && ordenada == -5) {
            alert("");
        } else if (abiscissa == -6 && ordenada == -5) {
            alert("");
        } else if (abiscissa == -7 && ordenada == -5) {
            alert("");
        } else if (abiscissa == -8 && ordenada == -5) {
            alert("");
        }

        // Ordenada -6
          else if (abiscissa == -8 && ordenada == -6) {
            alert("");
        } else if (abiscissa == +2 && ordenada == -6) {
            alert("");
        } else if (abiscissa == +1 && ordenada == -6) {
            alert("");
        } else if (abiscissa == 0 && ordenada == -6) {
            alert("");
        } else if (abiscissa == -1 && ordenada == -6) {
            alert("");
        } else if (abiscissa == -2 && ordenada == -6) {
            alert("");
        } else if (abiscissa == -3 && ordenada == -6) {
            alert("");
        } else if (abiscissa == -4 && ordenada == -6) {
            alert("");
        } else if (abiscissa == -5 && ordenada == -6) {
            alert("");
        } else if (abiscissa == -6 && ordenada == -6) {
            alert("");
        } else if (abiscissa == -7 && ordenada == -6) {
            alert("");
        } else if (abiscissa == -8 && ordenada == -6) {
            alert("");
        }

        // Ordenada -7
          else if (abiscissa == -8 && ordenada == -7) {
            alert("");
        } else if (abiscissa == +2 && ordenada == -7) {
            alert("");
        } else if (abiscissa == +1 && ordenada == -7) {
            alert("");
        } else if (abiscissa == 0 && ordenada == -7) {
            alert("");
        } else if (abiscissa == -1 && ordenada == -7) {
            alert("");
        } else if (abiscissa == -2 && ordenada == -7) {
            alert("");
        } else if (abiscissa == -3 && ordenada == -7) {
            alert("");
        } else if (abiscissa == -4 && ordenada == -7) {
            alert("");
        } else if (abiscissa == -5 && ordenada == -7) {
            alert("");
        } else if (abiscissa == -6 && ordenada == -7) {
            alert("");
        } else if (abiscissa == -7 && ordenada == -7) {
            alert("");
        } else if (abiscissa == -8 && ordenada == -7) {
            alert("");
        }

        // Ordenada -8
          else if (abiscissa == -8 && ordenada == -8) {
            alert("");
        } else if (abiscissa == +2 && ordenada == -8) {
            alert("");
        } else if (abiscissa == +1 && ordenada == -8) {
            alert("");
        } else if (abiscissa == 0 && ordenada == -8) {
            alert("");
        } else if (abiscissa == -1 && ordenada == -8) {
            alert("");
        } else if (abiscissa == -2 && ordenada == -8) {
            alert("");
        } else if (abiscissa == -3 && ordenada == -8) {
            alert("");
        } else if (abiscissa == -4 && ordenada == -8) {
            alert("");
        } else if (abiscissa == -5 && ordenada == -8) {
            alert("");
        } else if (abiscissa == -6 && ordenada == -8) {
            alert("");
        } else if (abiscissa == -7 && ordenada == -8) {
            alert("");
        } else if (abiscissa == -8 && ordenada == -8) {
            alert("");
        }
    }
    
asked by anonymous 24.09.2017 / 01:33

1 answer

2

I'll use an approach to create a JSON table. See the code below. Click the blue Run button to test.

function formatarElemento(e) {
    return e.length === 2
        ? e[0].a + " / " + e[0].b + " - " + e[1].a + " / " + e[1].b
        : e[0].a + " / " + e[0].b;
}

function par(a, b) {
    return {"a": a, "b": b};
}

function celula1(par) {
    return [par];
}

function celula2(par1, par2) {
    return [par1, par2];
}

var tabela = {
    "-8": {
       "3": celula2(par( 90, 200), par(120, 300)),
       "2": celula2(par( 90, 200), par(120, 300)),
       "1": celula2(par( 90, 200), par(120, 300)),
       "0": celula2(par(120, 200), par(120, 300)),
      "-1": celula2(par(120, 200), par(120, 300)),
      "-2": celula2(par(120, 200), par(120, 300)),
      "-3": celula2(par(160, 200), par(160, 300)),
      "-4": celula2(par(160, 200), par(160, 300)),
      "-5": celula2(par(160, 200), par(160, 300)),
      "-6": celula2(par(160, 200), par(160, 300)),
      "-7": celula2(par(160, 250), par(160, 350)),
      "-8": celula2(par( 90, 250), par(160, 350))
    },
    "-7": {
       "3": celula2(par( 90, 200), par(120, 300)),
       "2": celula2(par( 90, 200), par(120, 300)),
       "1": celula2(par( 90, 200), par(120, 300)),
       "0": celula2(par(120, 200), par(120, 300)),
      "-1": celula2(par(120, 200), par(120, 300)),
      "-2": celula2(par(120, 200), par(120, 300)),
      "-3": celula2(par(160, 200), par(160, 300)),
      "-4": celula2(par(160, 200), par(160, 300)),
      "-5": celula2(par(160, 200), par(160, 300)),
      "-6": celula2(par(160, 200), par(160, 300)),
      "-7": celula2(par(160, 250), par(160, 350)),
      "-8": celula2(par( 90, 200), par(160, 350))
    },
    "-6": {
       "3": celula2(par( 90, 200), par(120, 300)),
       "2": celula2(par( 90, 200), par(120, 300)),
       "1": celula2(par( 90, 200), par(120, 300)),
       "0": celula2(par(120, 200), par(120, 300)),
      "-1": celula2(par(120, 200), par(120, 300)),
      "-2": celula2(par(120, 200), par(120, 300)),
      "-3": celula2(par(160, 200), par(160, 300)),
      "-4": celula2(par(160, 200), par(160, 300)),
      "-5": celula2(par(160, 200), par(160, 300)),
      "-6": celula2(par(160, 200), par(160, 300)),
      "-7": celula2(par(160, 250), par(160, 350)),
      "-8": celula2(par( 90, 150), par(160, 350))
    },
    "-5": {
       "3": celula2(par( 90, 200), par( 90, 250)),
       "2": celula2(par( 90, 200), par( 90, 250)),
       "1": celula2(par( 90, 200), par( 90, 250)),
       "0": celula2(par(120, 200), par(120, 250)),
      "-1": celula2(par(120, 200), par(120, 250)),
      "-2": celula2(par(120, 200), par(120, 250)),
      "-3": celula2(par(160, 150), par(160, 250)),
      "-4": celula2(par(160, 200), par(160, 300)),
      "-5": celula2(par(160, 200), par(160, 300)),
      "-6": celula2(par(160, 200), par(160, 300)),
      "-7": celula2(par(160, 250), par(160, 350)),
      "-8": celula2(par(120, 200), par(160, 350))
    },
    "-4": {
       "3": celula2(par( 90, 150), par( 90, 200)),
       "2": celula2(par( 90, 150), par( 90, 200)),
       "1": celula2(par( 90, 150), par( 90, 200)),
       "0": celula2(par(120, 150), par(120, 200)),
      "-1": celula2(par(120, 150), par(120, 200)),
      "-2": celula2(par(120, 200), par(120, 250)),
      "-3": celula2(par(160, 150), par(160, 250)),
      "-4": celula2(par(160, 150), par(160, 250)),
      "-5": celula2(par(160, 150), par(160, 250)),
      "-6": celula2(par(160, 200), par(160, 300)),
      "-7": celula2(par(160, 250), par(160, 350)),
      "-8": celula2(par(120, 250), par(160, 350))
    },
    "-3": {
       "3": celula2(par( 90, 150), par( 90, 200)),
       "2": celula2(par( 90, 150), par( 90, 200)),
       "1": celula2(par( 90, 150), par( 90, 200)),
       "0": celula2(par(120, 150), par(120, 200)),
      "-1": celula2(par(120, 150), par(120, 200)),
      "-2": celula2(par(120, 150), par(120, 200)),
      "-3": celula2(par(160, 150), par(160, 200)),
      "-4": celula2(par(160, 150), par(160, 250)),
      "-5": celula2(par(160, 150), par(160, 250)),
      "-6": celula2(par(160, 200), par(160, 300)),
      "-7": celula2(par(160, 250), par(160, 350)),
      "-8": celula1(               par(210, 300))
    },
    "-2": {
       "3": celula1(               par(160, 150)),
       "2": celula1(               par(160, 150)),
       "1": celula1(               par(160, 150)),
       "0": celula1(               par(160, 150)),
      "-1": celula1(               par(160, 150)),
      "-2": celula1(               par(160, 200)),
      "-3": celula2(par(160, 150), par(160, 200)),
      "-4": celula2(par(160, 150), par(160, 200)),
      "-5": celula2(par(160, 200), par(160, 200)),
      "-6": celula2(par(160, 250), par(160, 300)),
      "-7": celula2(par(160, 250), par(160, 300)),
      "-8": celula2(par(160, 250), par(150, 350))
    },
    "-1": {
       "3": celula1(               par(160, 150)),
       "2": celula1(               par(160, 150)),
       "1": celula1(               par(160, 150)),
       "0": celula1(               par(160, 150)),
      "-1": celula1(               par(160, 150)),
      "-2": celula1(               par(160, 200)),
      "-3": celula2(par(160, 150), par(160, 200)),
      "-4": celula2(par(160, 150), par(160, 200)),
      "-5": celula2(par(160, 200), par(160, 250)),
      "-6": celula2(par(160, 250), par(160, 300)),
      "-7": celula2(par(160, 250), par(160, 300)),
      "-8": celula2(par(160, 300), par(160, 350))
    }
};

function calcular() {
    var abscissa = document.getElementById('ab').value;
    var ordenada = document.getElementById('or').value;
    if (abscissa < -8) abscissa = -8;
    if (ordenada < -8) ordenada = -8;
    var elemento = tabela["" + ordenada]["" + abscissa];
    document.getElementById('res').value = formatarElemento(elemento);
}
<p>
    Abscissa (coluna da tabela): <input id="ab" type="text" />
</p>
<p>
    Ordenada (linha da tabela): <input id="or" type="text" />
</p>
<p>
    <input type="button" value="Calcular" onclick="javascript: calcular();" />
</p>
<p>
    Resultado: <input id="res" type="text" readonly />
</p>

I called the elements of each pair of a and b , because I did not know how to name them. To change this, simply change the names in the functions par and formatarElemento .

    
24.09.2017 / 03:58