Menu
CoddyTech

嵌套 JSON

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

一个 JSON 对象中可以包含另一个 JSON 对象。它可以无限嵌套。例如:

const userData = {
  "user": {
    "name": "Kim",
    "address": {
      "city": "Springfield",
      "zip": 12345,
      "location": {
        "coordinates": {
          "latitude": 42.1234,
          "longitude": -71.5678
        }
      }
    }
  }
}

要访问嵌套键,我们可以这样写:

userData.user.name
userData.user.address.location
// 以此类推
challenge icon

挑战

简单

创建一个名为 calculateRestaurantBill 的函数,该函数接收一个表示餐厅订单的 JSON 对象作为输入。对象中的每个键都是一道菜的名称,每个值都是另一个对象,其中包含:

  • price(数字)
  • quantity(数字)
  • isSpecialOffer(布尔值) 

如果为 true,该菜品可享受 20% 的折扣。函数应当:

  1. 计算账单总额
  2. 应用所有特别优惠折扣

返回的对象包含:

  • totalBeforeDiscount
  • totalDiscount
  • finalTotal

(所有值都四舍五入到小数点后 2 位)

亲手试试

function calculateRestaurantBill(order) {
    // 在这里编写代码
    
    
    return {
        totalBeforeDiscount: Number(totalBeforeDiscount.toFixed(2)),
        totalDiscount: Number(totalDiscount.toFixed(2)),
        finalTotal: Number(finalTotal.toFixed(2))
    };
}
// 不要在函数外编写任何内容
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

逻辑与流程中的所有课

自己练习: JavaScript 在线编译器

格式化并浏览任意 JSON: JSON 格式化工具