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ụcThử 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:
- Tính tổng hóa đơn
- Á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àmBà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
4JSON phần 2
Duyệt qua JSONJSON lồng nhauOptional chaining trong JSONSao chép nông và sâuÔn tập: Cửa hàng xe đạpÔn tập: Hệ Mặt Trời7Hệ thống quản lý thư viện
Tổng quan dự ánThêm sách10Quản lý hệ thống lễ hội
Tổng quan dự ánThêm phim và địa điểm2Mảng nhiều chiều
Kiến thức cơ bản về mảng 2 chiềuTruy cập phần tử trong mảng 2 chiềuVòng lặp lồng nhau với mảng 2 chiềuÔn tập về mảng 2 chiềuPhép cộng và phép trừ ma trậnMảng không đềuMảng 3 chiều và hơn nữaCác mẫu thường gặp với mảng 2 chiềuÔn tập về mảng3JSON phần 1
JSON là gì?Kiểm tra khóa có tồn tạiPhương thức của đối tượngToán tử spread phần 1Toán tử spread phần 2Xóa khóaÔn tập: thao tác với khóa trong JSONTự 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