복습 - 태양계
Coddy JavaScript 여정의 논리 & 흐름 섹션에 포함된 레슨 — 65개 중 27번째.
챌린지
쉬움하나의 인자로서 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 행성이고
- 해당 행성이 발견된 지 몇 년이 지났는지(
2010년 기준) 계산하여ageOfDiscovery속성을 추가합니다. - 만약 행성에 고리가 있고(has rings) 달이 5개보다 많다면,
specialFeature속성을 추가하고 값으로Ring System with Rich Moon Population을 할당합니다.
- 다음 규칙에 따라
- 수정된 객체를 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) {
// 여기에 코드를 작성하세요
}
// 함수 외부에는 아무것도 작성하지 마세요