Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

259
Visualizações
Javascript Loop which includes variables

I wrote this Javascript code.

function updateCost(plotcode) {
    if (plotcode == "KKPP") {
        alert("Fully Invalid!!!");
        KKPP();
    } else if (plotcode == 1) {
        var pValue = parseInt(localStorage.plot1);
        var opValue = 2 * pValue;
        var mval = 760;
        if (opValue >= mval) {
            var opValue = mval;
        }
        var k = (localStorage.plot1 = opValue - 10);
    } else if (plotcode == 2) {
        var pValue = parseInt(localStorage.plot2);
        var opValue = 2 * pValue;
        var mval = 760;
        if (opValue >= mval) {
            var opValue = mval;
        }
        var k = (localStorage.plot2 = opValue - 10);
    } else if (plotcode == 3) {
        var pValue = parseInt(localStorage.plot3);
        var opValue = 2 * pValue;
        var mval = 820;
        if (opValue >= mval) {
            var opValue = mval;
        }
        var k = (localStorage.plot3 = opValue - 20);
    } else {
        alert("Invalid Plot Code");
        KKPP();
    }

    alert("Rent of Plot " + plotcode + " is updated to " + k);
    addtoHistory("Plot " + plotcode, "Rent Updated to " + k);
}

This code is very long.

As you can see the code is repeating in this format

} else if (plotcode == 7) {
    var pValue = parseInt(localStorage.plot7);
    var opValue = 2 * pValue;
    var mval = 940;
    if (opValue >= mval) {
        var opValue = mval;
    }
    var k = (localStorage.plot7 = opValue - 40);

again and again

How can I put this inside a loop, or is there anything else that I can do to make this short?

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Hmmm, I suggest you to store the valid plotcodes and their data in an array. You need some hardcoded values.

conts PLOTCODE_DATAS = [{plotcode: 1, mval: 760, substrahend: 10 }, ...];

Now you can easily use find or a for loop.

  • With find
function updateCost(plotcode) {
    if (plotcode == "KKPP") {
        alert("Fully Invalid!!!");
        KKPP();
        return;
    } 
    const plotcodeData = PLOTCODE_DATAS.find(d => d.plotcode === plotcode);
    if(!plotcodeData) {
        alert("Invalid Plot Code");
        KKPP();    
    }
    const pValue = parseInt(localStorage["plot" + plotcode]);
    let opValue = 2 * pValue;
    if (opValue >= plotcodeData.mval) {
        opValue = plotcodeData.mval;
    }
    const k = (localStorage["plot" + plotcode]= opValue - plotcodeData.substrahend);

    alert("Rent of Plot " + plotcode + " is updated to " + k);
    addtoHistory("Plot " + plotcode, "Rent Updated to " + k);
}
  • With for loop
function updateCost(plotcode) {
    if (plotcode == "KKPP") {
        alert("Fully Invalid!!!");
        KKPP();
        return;
    }
    for(let plotcodeData of PLOTCODE_DATAS) {
        if(plotcodeData.plotcode === plotcode) {
            const pValue = parseInt(localStorage["plot" + plotcode]);
            let opValue = 2 * pValue;
            if (opValue >= plotcodeData.mval) {
                opValue = plotcodeData.mval;
            }
            const k = (localStorage["plot" + plotcode]= opValue - plotcodeData.substrahend);

            alert("Rent of Plot " + plotcode + " is updated to " + k);
            addtoHistory("Plot " + plotcode, "Rent Updated to " + k);
            return;
        }
    }
    alert("Invalid Plot Code");
    KKPP();  
}

Your data can look even like this:

  • With map
conts PLOTCODE_DATAS = new Map([[1, {mval: 760, substrahend: 10}], ...]);
...
const plotcodeData = PLOTCODE_DATAS.get(plotcode);
  • With unreadable minimaml
conts PLOTCODE_DATAS = [[1, 760, 10], ...]);
...
const plotcodeData =  PLOTCODE_DATAS.find(d => d[0] === plotcode);
// OR
for(let plotcodeData of PLOTCODE_DATAS) {
   if(plotcodeData[0] === plotcode) { ...

But I don't recommend thit one.

about 4 years ago · Juan Pablo Isaza Relatório

0

Try it like this:

function cost(i, mval){
    var pValue = parseInt(localStorage["plot" + i]);
    var opValue = 2 * pValue;
    if (opValue >= mval) {
        var opValue = mval;
    }
    var k = (localStorage["plot" + i] = opValue - 20);
}
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda