Menu
Coddy logo textTech

Повторение — Солнечная система

Часть раздела Логика и поток путешествия по JavaScript на Coddy — урок 27 из 65.

challenge icon

Задание

Легко

Создайте функцию с именем analyzeSolarSystem, которая принимает один аргумент — JSON-строку solarSystemData. JSON-строка содержит информацию о планетах нашей солнечной системы. Каждая планета имеет следующие свойства:

  • name (строка)
  • type (строка: "rocky" или "gas")
  • numberOfMoons (число)
  • discoveredIn (число, год)
  • surfaceTemperature (объект с min и max в градусах Цельсия)
  • hasRings (логическое значение)

Ваша задача:

  1. Распарсить JSON-строку в объект.
  2. Для каждой планеты:
    1. Добавить свойство classification на основе следующих правил:
      1. Если это каменистая планета (rocky) и surfaceTemperature.max < 50°C: Potentially Habitable
      2. Если это каменистая планета (rocky) и surfaceTemperature.max >= 50°C: Extreme Environment
      3. Если это газовая планета (gas) и numberOfMoons > 10: Complex System
      4. Если это газовая планета (gas) и numberOfMoons <= 10: Simple Gas Giant
    2. Добавить свойство ageOfDiscovery, которое вычисляет, сколько лет назад была открыта планета (относительно 2010 года)
    3. Если у планеты есть кольца и более 5 лун, добавить свойство specialFeature со значением Ring System with Rich Moon Population
  3. Вернуть измененный объект в виде JSON-строки.

Пример входных данных: 

{
  "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
    }
  ]
}

Попробуйте сами

function analyzeSolarSystem(solarSystemData) {
    // Напишите код здесь
}
// Не пишите ничего вне функции

Все уроки раздела Логика и поток