Menu
Coddy logo textTech

復習 - 太陽系

CoddyのJavaScriptジャーニー「論理とフロー」セクションの一部 — レッスン 27/65。

challenge icon

チャレンジ

簡単

1つの引数としてJSON文字列 solarSystemData を受け取る、analyzeSolarSystem という名前の関数を作成してください。この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つより多くの衛星がある場合は、値が Ring System with Rich Moon Population であるプロパティ specialFeature を追加します。
  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) {
    // ここにコードを記述してください
}
// 関数の外には何も記述しないでください

論理とフローのすべてのレッスン