Menu
CoddyTech

Ôn tập: Hệ Mặt Trời

Thuộc phần Logic và luồng chương trình trong hành trình JavaScript của Coddy. Bài học 27 trên 65.

challenge icon

Thử thách

Dễ

Tạo một hàm (function) có tên analyzeSolarSystem nhận một đối số là chuỗi JSON solarSystemData. Chuỗi JSON này chứa thông tin về các hành tinh trong hệ Mặt Trời của chúng ta. Mỗi hành tinh có các thuộc tính sau:

  • name (chuỗi)
  • type (chuỗi: "rocky" hoặc "gas")
  • numberOfMoons (số)
  • discoveredIn (số, năm)
  • surfaceTemperature (đối tượng có giá trị tối thiểu và tối đa theo độ C)
  • hasRings (giá trị boolean)

Nhiệm vụ của bạn:

  1. Phân tích chuỗi JSON thành một đối tượng.
  2. Với mỗi hành tinh:
    1. Thêm thuộc tính classification dựa trên các quy tắc sau:
      1. Nếu đó là hành tinh đá và surfaceTemperature.max < 50°C: Potentially Habitable
      2. Nếu đó là hành tinh đá và surfaceTemperature.max >= 50°C: Extreme Environment
      3. Nếu đó là hành tinh khí và numberOfMoons > 10: Complex System
      4. Nếu đó là hành tinh khí và numberOfMoons <= 10: Simple Gas Giant
    2. Thêm thuộc tính ageOfDiscovery để tính số năm kể từ khi hành tinh được phát hiện (tính từ năm 2010)
    3. Nếu hành tinh có vành đai và hơn 5 mặt trăng, hãy thêm thuộc tính specialFeature với giá trị Ring System with Rich Moon Population
  3. Trả về đối tượng đã sửa đổi dưới dạng chuỗi JSON.

Đầu vào ví dụ: 

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

Tự làm thử

function analyzeSolarSystem(solarSystemData) {
    // Viết code ở đây
}
// Không viết gì bên ngoài hàm

Tất cả bài học trong Logic và luồng chương trình

Tự luyện tập: Trình biên dịch JavaScript online