Menu
CoddyTech

JSON lồng nhau

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 23 trên 65.

Một đối tượng JSON có thể chứa một đối tượng JSON khác bên trong. Bạn có thể lồng chúng vô hạn. Ví dụ:

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

Để truy cập một khóa lồng nhau, ta viết:

userData.user.name
userData.user.address.location
// Và cứ thế tiếp tục
challenge icon

Thử thách

Dễ

Tạo một hàm (function) có tên calculateRestaurantBill, nhận đầu vào là một đối tượng JSON biểu thị đơn hàng của nhà hàng. Mỗi khóa trong đối tượng là tên một món ăn, còn mỗi giá trị là một đối tượng khác chứa:

  • price (số)
  • quantity (số)
  • isSpecialOffer (boolean) 

Nếu giá trị là true, món ăn đó được giảm giá 20%. Hàm cần:

  1. Tính tổng hóa đơn
  2. Áp dụng mọi khoản giảm giá ưu đãi đặc biệt

Đối tượng được trả về gồm:

  • totalBeforeDiscount
  • totalDiscount
  • finalTotal

(Mọi giá trị đều được làm tròn đến 2 chữ số thập phân)

Tự làm thử

function calculateRestaurantBill(order) {
    // Viết code tại đây
    
    
    return {
        totalBeforeDiscount: Number(totalBeforeDiscount.toFixed(2)),
        totalDiscount: Number(totalDiscount.toFixed(2)),
        finalTotal: Number(finalTotal.toFixed(2))
    };
}
// Không viết gì bên ngoài hàm
quiz iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

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

Định dạng và khám phá JSON bất kỳ: Công cụ định dạng JSON