復習 - 太陽系
CoddyのJavaScriptジャーニー「論理とフロー」セクションの一部 — レッスン 27/65。
チャレンジ
簡単1つの引数としてJSON文字列 solarSystemData を受け取る、analyzeSolarSystem という名前の関数を作成してください。このJSON文字列には、太陽系の惑星に関する情報が含まれています。各惑星は以下のプロパティを持っています:
name(文字列)type(文字列: "rocky" または "gas")numberOfMoons(数値)discoveredIn(数値、年)surfaceTemperature(摂氏での min と max を持つオブジェクト)hasRings(真偽値)
タスク:
- JSON文字列をオブジェクトにパースします。
- 各惑星について:
- 以下のルールに基づいてプロパティ
classificationを追加します:- もし "rocky" 惑星で
surfaceTemperature.max< 50°C の場合:Potentially Habitable - もし "rocky" 惑星で
surfaceTemperature.max>= 50°C の場合:Extreme Environment - もし "gas" 惑星で
numberOfMoons> 10 の場合:Complex System - もし "gas" 惑星で
numberOfMoons<= 10 の場合:Simple Gas Giant
- もし "rocky" 惑星で
- その惑星が何年前に発見されたかを計算するプロパティ
ageOfDiscoveryを追加します(2010年を基準とします)。 - もし惑星に環があり、かつ5つより多くの衛星がある場合は、値が
Ring System with Rich Moon PopulationであるプロパティspecialFeatureを追加します。
- 以下のルールに基づいてプロパティ
- 変更されたオブジェクトを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) {
// ここにコードを記述してください
}
// 関数の外には何も記述しないでください