Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Solução para problema JavaScript com array

Olá a todos. Após a aula de lógica de programação I, tentei criar problemas por conta própria e depois solucioná-los. Um deles é de calcular o peso em cada planeta diferente. Explicando melhor, o usuário coloca os inputs (prompt) como: nome, a massa, e em qual planeta gostaria de saber o peso e com isso teria o peso final no planeta desejado. Fiz o programa abaixo e funcionou muito bem, porém gostaria de solução com menos linhas de código utilizando array. Alguém pode me ajudar a escrever de uma maneira mais simples?

<meta charset="UTF-8">

<script>

var mostra=function(texto){
    document.write(texto);
    document.write("<hr>");    
}

var mercurio=3;
var venus=8;
var terra=10;
var marte=4;
var jupiter=25;
var saturno=10;
var urano=8;

var nome = prompt("Qual é o seu nome?");

var massa = parseInt(prompt("Qual é a sua massa?"));

var planeta = prompt("Qual planeta você gostaria de saber seu peso?");


if(planeta == "mercurio"){
var peso = mercurio*massa;
    mostra("Olá " + nome + ". Seu peso é " + peso + " kgf em " + planeta);
}

if(planeta == "venus"){
var peso = venus*massa;
    mostra("Olá " + nome + ". Seu peso é " + peso + " kgf em " + planeta);
}

if(planeta == "terra"){
var peso = terra*massa;
    mostra("Olá " + nome + ". Seu peso é " + peso + " kgf em " + planeta);
}

if(planeta == "marte"){
var peso = marte*massa;
    mostra("Olá " + nome + ". Seu peso é " + peso + " kgf em " + planeta);
}

if(planeta == "jupiter"){
var peso = jupiter*massa;
    mostra("Olá " + nome + ". Seu peso é " + peso + " kgf em " + planeta);
}

if(planeta == "saturno"){
var peso = saturno*massa;
    mostra("Olá " + nome + ". Seu peso é " + peso + " kgf em " + planeta);
}

if(planeta == "urano"){
var peso = urano*massa;
    mostra("Olá " + nome + ". Seu peso é " + peso + " kgf em " + planeta);
}

</script>
3 respostas
solução!

Olá Mathias,

segue uma abordagem possível.

<meta charset="UTF-8">

<script>

var planetas = {
    mercurio: 3,
    venus: 8,
    terra: 10,
    marte: 4,
    jupiter: 25,
    saturno: 10,
    urano: 8
};

function mostra(texto) {
    document.write(texto);
    document.write("<hr>");    
}

function calcula(nome, planeta, peso) {
    var peso = planetas[planeta] * massa;
    mostra("Olá " + nome + ". Seu peso é " + peso + " kgf em " + planeta);
}


var nome = prompt("Qual é o seu nome?"),
    massa = parseInt(prompt("Qual é a sua massa?")),
    planeta = prompt("Qual planeta você gostaria de saber seu peso?");

calcula(nome, planeta, massa);
</script>

Muito obrigado Djonathan!! Simplificou bastante o código.

Por nada, bons estudos! :)