Menu
CoddyTech

复习:太阳系

本课属于 Coddy JavaScript 学习旅程的“逻辑与流程”单元。第 27 课,共 65 课。

challenge icon

挑战

简单

创建一个名为 analyzeSolarSystem 的函数,它接收一个参数,即 JSON 字符串 solarSystemData。这个 JSON 字符串包含太阳系中各行星的信息。每颗行星都有以下属性:

  • name(字符串)
  • type(字符串:"rocky" 或 "gas")
  • numberOfMoons(数字)
  • discoveredIn(数字,年份)
  • surfaceTemperature(对象,包含以摄氏度为单位的 min 和 max)
  • hasRings(布尔值)

你的任务:

  1. 将 JSON 字符串解析为对象。
  2. 对每颗行星:
    1. 根据以下规则添加属性 classification:
      1. 如果是岩石行星,且 surfaceTemperature.max < 50°C:Potentially Habitable
      2. 如果是岩石行星,且 surfaceTemperature.max >= 50°C:Extreme Environment
      3. 如果是气态行星,且 numberOfMoons > 10:Complex System
      4. 如果是气态行星,且 numberOfMoons <= 10:Simple Gas Giant
    2. 添加属性 ageOfDiscovery,用于计算这颗行星是在多少年前被发现的(以 2010 年为基准)。
    3. 如果这颗行星有光环且卫星数量超过 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) {
    // 在这里编写代码
}
// 不要在函数外编写任何内容

逻辑与流程中的所有课

自己练习: JavaScript 在线编译器