JSON anidado
Parte de la sección Lógica y Flujo del Journey de JavaScript de Coddy. Lección 23 de 65.
Un objeto JSON puede contener otro objeto JSON en su interior. Puede estar anidado infinitamente. Por ejemplo:
const userData = {
"user": {
"name": "Kim",
"address": {
"city": "Springfield",
"zip": 12345,
"location": {
"coordinates": {
"latitude": 42.1234,
"longitude": -71.5678
}
}
}
}
}Para acceder a una clave anidada escribiríamos:
userData.user.name
userData.user.address.location
// Y así sucesivamenteDesafío
FácilCrea una función llamada calculateRestaurantBill que acepte como entrada un objeto JSON que represente un pedido de restaurante. Cada clave del objeto es el nombre de un plato, y cada valor es otro objeto que contiene:
- precio (número)
- cantidad (número)
- isSpecialOffer (booleano)
si es true, hay un descuento del 20 % en ese plato. La función debe:
- Calcular el total de la cuenta
- Aplicar cualquier descuento de oferta especial
El objeto devuelto contiene:
- totalBeforeDiscount
- totalDiscount
- finalTotal
(Todos los valores se redondean a 2 decimales)
Pruébalo tú mismo
function calculateRestaurantBill(order) {
// Escribe el código aquí
return {
totalBeforeDiscount: Number(totalBeforeDiscount.toFixed(2)),
totalDiscount: Number(totalDiscount.toFixed(2)),
finalTotal: Number(finalTotal.toFixed(2))
};
}
// No escribas nada fuera de la funciónEsta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Lógica y Flujo
1Strings en profundidad
Fundamentos de stringsIterar sobre stringsTemplate LiteralsMétodos de stringsResumen - String Weaver4JSON Parte 2
Iterar sobre JSONJSON anidadoEncadenamiento opcional en JSONCopia superficial y profundaResumen - Tienda de bicicletasResumen - Sistema solar7Sistema de Gestión de Biblioteca
Descripción general del proyectoAñadir libros10Gestionar el sistema del festival
Descripción general del proyectoAñadir películas y sedes2Arreglos multidimensionales
Conceptos básicos de arreglos 2DAcceso a elementos de arreglos 2DBucles anidados con arreglos 2DResumen - Arreglos 2DSuma y resta de matricesArreglos irregulares (Jagged Arrays)Arreglos 3D y más alláPatrones comunes en arreglos 2DResumen - Todo sobre arreglos5Conjuntos Parte 1
¿Qué es un conjunto?Iterar sobre conjuntosAñadir un elementoEliminar un elementoComprobar si un elemento existeTamaño y Is EmptyCopy y ClearResumen - Conceptos básicos de conjuntos8Temas interesantes de Arrays
Desestructuración de ArraysSintaxis Spread en ArraysArrays dispersosResumen - Taller de Arrays3JSON Parte 1
¿Qué es un JSON?Comprobar si existe una claveMétodos de objetoEl Spread Operator Parte 1El Spread Operator Parte 2Eliminar clavesResumen - Manipular claves de JSONPractica por tu cuenta: Compilador de JavaScript online