Menu
Coddy logo textTech

복습 - 태양계

Coddy JavaScript 여정의 논리 & 흐름 섹션에 포함된 레슨 — 65개 중 27번째.

challenge icon

챌린지

쉬움

하나의 인자로서 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. 해당 행성이 발견된 지 몇 년이 지났는지(2010년 기준) 계산하여 ageOfDiscovery 속성을 추가합니다.
    3. 만약 행성에 고리가 있고(has rings) 달이 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) {
    // 여기에 코드를 작성하세요
}
// 함수 외부에는 아무것도 작성하지 마세요

논리 & 흐름의 모든 레슨