1
resposta

Finalizando o curso de lógica decidi praticar. O código até que funciona, mas o número de vezes que ele solicita variável substância aumenta de acordo com a posição da resposta no array.

<meta charset="utf-8">

<script type="text/javascript">

var dataChem = [ {nome:'K', massa:30.09},{nome:'Na', massa:22.99},{nome:'Mg', massa:24.30}];

var index = dataChem.findIndex(procura);

var massaMolecular = (dataChem[index].massa);

function procura(element, index, array) {

    var substancia = prompt("qual o nome da substância");

    return element.nome == substancia;
}

function calculaMassa (x,y) {

    return massaDaSubstancia = (numeroDeMolsDaSubstancia*massaMolecular)/1
}

function calculaMols (a,b) {

     return numeroDeMolsDaSubstancia = (1*massaDaSubstancia)/massaMolecular;  
}

var unidadeResposta = prompt("Você deseja obter como resultado massa ou número de mols?");

if(unidadeResposta == "massa"){

    var numeroDeMolsDaSubstancia = parseFloat(prompt("informe o número de mols da substâcia"));

    var resultadoMas = calculaMassa(massaMolecular,numeroDeMolsDaSubstancia);


    document.write(resultadoMas + " g");

}else{

    var massaDaSubstancia = parseFloat(prompt("informe o a massa da substância em gramas"));

    var resultadoMol = calculaMols(massaDaSubstancia,massaMolecular);

    document.write(resultadoMol+ " mol");
}


</script>
1 resposta

Oii, Thales! Tudo bem?

Uma forma de corrigir o problema de repetição da solicitação da variável de substância é colocar a declaração desta variável , fora da função procura(), dessa forma, o pedido da substância será executado apenas uma única vez.

Vejamos um exemplo de como ficaria o código com essa alteração:

<meta charset="utf-8">

<script type="text/javascript">

var dataChem = [ {nome:'K', massa:30.09},{nome:'Na', massa:22.99},{nome:'Mg', massa:24.30}];

var substancia = prompt("Qual o nome da substância?");

var index = dataChem.findIndex(procura);

var massaMolecular = (dataChem[index].massa);

function procura(element, index, array) {
    return element.nome == substancia;
}

function calculaMassa (x,y) {

    return massaDaSubstancia = (numeroDeMolsDaSubstancia*massaMolecular)/1
}

function calculaMols (a,b) {

     return numeroDeMolsDaSubstancia = (1*massaDaSubstancia)/massaMolecular;  
}

var unidadeResposta = prompt("Você deseja obter como resultado massa ou número de mols?");

if(unidadeResposta == "massa"){

    var numeroDeMolsDaSubstancia = parseFloat(prompt("informe o número de mols da substâcia"));

    var resultadoMas = calculaMassa(massaMolecular,numeroDeMolsDaSubstancia);


    document.write(resultadoMas + " g");

}else{

    var massaDaSubstancia = parseFloat(prompt("informe o a massa da substância em gramas"));

    var resultadoMol = calculaMols(massaDaSubstancia,massaMolecular);

    document.write(resultadoMol+ " mol");
}


</script>

Ao realizar a alteração será solicitado somente uma vez para inserir o nome da substância. Faça a modificação, realize o teste e verifique se obterá êxito.

Espero ter ajudado. Qualquer dúvida estarei à disposição.

Bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!