Menu
Coddy logo textTech

Recapitulação - Sistema Solar

Parte da seção Lógica & Fluxo do Journey de JavaScript da Coddy — lição 27 de 65.

challenge icon

Desafio

Fácil

Crie uma função chamada analyzeSolarSystem que recebe um argumento, uma string JSON solarSystemData. A string JSON contém informações sobre planetas em nosso sistema solar. Cada planeta possui as seguintes propriedades:

  • name (string)
  • type (string: "rocky" ou "gas")
  • numberOfMoons (número)
  • discoveredIn (número, ano)
  • surfaceTemperature (objeto com min e max em Celsius)
  • hasRings (booleano)

Sua tarefa:

  1. Analise (parse) a string JSON em um objeto.
  2. Para cada planeta:
    1. Adicione uma propriedade classification com base nestas regras:
      1. Se for um planeta rochoso e surfaceTemperature.max < 50°C: Potentially Habitable
      2. Se for um planeta rochoso e surfaceTemperature.max >= 50°C: Extreme Environment
      3. Se for um planeta gasoso e numberOfMoons > 10: Complex System
      4. Se for um planeta gasoso e numberOfMoons <= 10: Simple Gas Giant
    2. Adicione uma propriedade ageOfDiscovery que calcula há quantos anos o planeta foi descoberto (a partir do ano 2010)
    3. Se o planeta tiver anéis e mais de 5 luas, adicione uma propriedade specialFeature com o valor Ring System with Rich Moon Population
  3. Retorne o objeto modificado como uma string JSON.

Exemplo de entrada: 

{
  "planets": [
    {
      "name": "Mars",
      "type": "rocky",
      "numberOfMoons": 2,
      "discoveredIn": -3000,
      "surfaceTemperature": {
        "min": -140,
        "max": 20
      },
      "hasRings": false
    },
    {
      "name": "Saturn",
      "type": "gas",
      "numberOfMoons": 82,
      "discoveredIn": -3000,
      "surfaceTemperature": {
        "min": -178,
        "max": -138
      },
      "hasRings": true
    }
  ]
}

Experimente você mesmo

function analyzeSolarSystem(solarSystemData) {
    // Escreva o código aqui
}
// Não escreva nada fora da função

Todas as lições de Lógica & Fluxo