중첩된 JSON
Coddy JavaScript 여정의 논리 & 흐름 섹션에 포함된 레슨 — 65개 중 23번째.
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
// 기타 등등챌린지
쉬움레스토랑 주문을 나타내는 JSON 객체를 입력으로 받는 calculateRestaurantBill이라는 이름의 함수를 작성하세요. 객체의 각 키는 요리 이름이며, 각 값은 다음을 포함하는 또 다른 객체입니다:
- price (숫자)
- quantity (숫자)
- isSpecialOffer (불리언)
만약 true인 경우, 해당 요리에 대해 20% 할인이 적용됩니다. 이 함수는 다음을 수행해야 합니다:
- 전체 청구 금액 계산
- 모든 특별 혜택 할인 적용
반환되는 객체는 다음을 포함합니다:
- totalBeforeDiscount
- totalDiscount
- finalTotal
(모든 값은 소수점 둘째 자리까지 반올림됩니다)
치트 시트
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
// 등등직접 해보기
function calculateRestaurantBill(order) {
// 여기에 코드를 작성하세요
return {
totalBeforeDiscount: Number(totalBeforeDiscount.toFixed(2)),
totalDiscount: Number(totalDiscount.toFixed(2)),
finalTotal: Number(finalTotal.toFixed(2))
};
}
// 함수 외부에는 아무것도 작성하지 마세요이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.