Ir ao conteúdo

Javascript JavaScript Conversor Temperatura retornar escala desejada e escala de origem


Ir à solução Resolvido por Underewar,

Posts recomendados

  • Solução
Postado

Olá a todos sou novo aqui.

Esse código a baixo executado no console node js. Alguém que conhece javascript pode me ajudar a me dizer o que estou fazendo de errado.

 

function converteTemperatura(temperatura, escalaOrigem, escalaDesejada){
  //temp values
  var escalaOrigem = "kelvin";
  var escalaDesejada = "celsius";
  var temperatura = 10;
  var conversionC;
  var conversionF;
  var conversionK;
  
  //convert the fahrenheit and kelvin values
  if (escalaOrigem == "celsius" || escalaDesejada == "celsius") {
    conversionF = temperatura * 9 / 5 + 32;
    conversionK = temperatura + 273;
    //convert the celsius and kelvin values
  } else if (escalaOrigem == "fahrenheit" || escalaDesejada == "fahrenheit") {
    conversionC = (temperatura - 32) * 5 / 9;
    conversionK = conversionC + 273;
    //convert the celsius and fahrenheit values
  } else if (escalaOrigem == "kelvin" || escalaDesejada == "kelvin") {
    conversionC = temperatura - 273;
    conversionF = conversionC * 9 / 5 + 32;
  }
}

 

Postado

Acredito que seja legal você fragmentar esse código...

Provavelmente você está com problema de execução por causa das variaveis temporaria.

 

  function converteTemperatura(temperatura, escalaOrigem, escalaDesejada){
  //temp values
  var escalaOrigem = "kelvin";
  var escalaDesejada = "celsius";
  var temperatura = 10;
  // RESTO DO CODIGO...

Nesse caso você está falando "Quando você me chamar, você tem que enviar a escalaOrigem, escalaDesejada e a temperatura... Porém eu sou rebelde e vou ignorar tudo que você me mandar."

 

Eu não cheguei a entender exatamente o seu código, então fiz uma correção com base no que eu entendi:

function converteTemperatura(temperatura, escalaOrigem){
  //convert the fahrenheit and kelvin values
  if (escalaOrigem === "celsius") {
    return {
      conversionF: (temperatura * 9 / 5) + 32,
      conversionK: temperatura + 273.15
    }
    //convert the celsius and kelvin values
  } else if (escalaOrigem === "fahrenheit") {
    return {
      conversionC: (temperatura - 32) * 5 / 9,
      conversionK: temperatura + 273.15
    }
    //convert the celsius and fahrenheit values
  } else if (escalaOrigem === "kelvin") {
    return {
      conversionC: temperatura - 273.15,
      conversionF: (temperatura - 273.15) * 9 / 5 + 32
    }
  }
}

console.log(converteTemperatura(10, 'celsius'))
console.log(converteTemperatura(10, 'fahrenheit'))
console.log(converteTemperatura(10, 'kelvin'))

Nesse caso eu recebo uma  temperatura  e o tipo dela e converto para os outros tipos.

 

Se fosse eu escrevendo o código provavelmente faria algo assim: (Esse código faz a mesma coisa do código acima)

const converterTemperaturas = {
  // Converte uma temperatura em celsius para fahrenheit e kelvin
  celsius2Fah_Kel: (temp) => {
    return {
      fahrenheit: (temp * 9 / 5) + 32, 
      kelvin: temp + 273.15
    }
  },
  // Converte uma temperatura em fahrenheit para celsius e kelvin
  fahrenheit2Cel_Kel: (temp) => {
    return {
      celsius: (temp - 32) * 5 / 9,
      kelvin: temp + 273.15
    }
  },
  // Converte uma temperatura em kelvin para fahrenheit e celsius
  kelvin2Cel_Fah: (temp) => {
    return {
      fahrenheit: (temp - 273.15) * 9 / 5 + 32, 
      celsius: temp - 273.15
    }
  }
}

console.log(converterTemperaturas.celsius2Fah_Kel(10))

console.log(converterTemperaturas.fahrenheit2Cel_Kel(10))

console.log(converterTemperaturas.kelvin2Cel_Fah(10))

 

O bom desse meu código é que você pode converter esse objeto em várias funções e exportar essas funções dentro de um arquivo.

 

Bom... Aqui vai minhas dicas de leitura com base no seu código:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Equality_comparisons_and_sameness

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/const

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/let

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/var

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Expressions_and_Operators#operators

  • Curtir 3
  • 2 semanas depois...

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!