JSON Aninhado
Parte da seção Lógica & Fluxo do Journey de JavaScript da Coddy — lição 23 de 65.
Um objeto JSON pode conter outro objeto JSON dentro dele. Ele pode ser aninhado infinitamente. Por exemplo:
const userData = {
"user": {
"name": "Kim",
"address": {
"city": "Springfield",
"zip": 12345,
"location": {
"coordinates": {
"latitude": 42.1234,
"longitude": -71.5678
}
}
}
}
}Para acessar uma chave aninhada, escreveríamos:
userData.user.name
userData.user.address.location
// E assim por dianteDesafio
FácilCrie uma função chamada calculateRestaurantBill que recebe um objeto JSON representando um pedido de restaurante como entrada. Cada chave no objeto é o nome de um prato, e cada valor é outro objeto contendo:
- price (número)
- quantity (número)
- isSpecialOffer (booleano)
se for true, há um desconto de 20% naquele prato. A função deve:
- Calcular o valor total da conta
- Aplicar quaisquer descontos de ofertas especiais
O objeto retornado contém:
- totalBeforeDiscount
- totalDiscount
- finalTotal
(Todos os valores são arredondados para 2 casas decimais)
Folha de consulta
Objetos JSON podem ser aninhados infinitamente:
const userData = {
"user": {
"name": "Kim",
"address": {
"city": "Springfield",
"zip": 12345,
"location": {
"coordinates": {
"latitude": 42.1234,
"longitude": -71.5678
}
}
}
}
}Acesse propriedades aninhadas usando a notação de ponto:
userData.user.name
userData.user.address.location
// E assim por dianteExperimente você mesmo
function calculateRestaurantBill(order) {
// Escreva o código aqui
return {
totalBeforeDiscount: Number(totalBeforeDiscount.toFixed(2)),
totalDiscount: Number(totalDiscount.toFixed(2)),
finalTotal: Number(finalTotal.toFixed(2))
};
}
// Não escreva nada fora da funçãoEsta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Lógica & Fluxo
1Strings em Profundidade
Fundamentos de StringsIterar sobre StringsTemplate LiteralsMétodos de StringRecapitulação - String Weaver4JSON Parte 2
Iterar sobre JSONJSON AninhadoEncadeamento Opcional em JSONCópia Rasa e ProfundaRecapitulação - Loja de BicicletasRecapitulação - Sistema Solar7Sistema de Gerenciamento de Biblioteca
Visão Geral do ProjetoAdicionando Livros10Gerenciar Sistema de Festival
Visão Geral do ProjetoAdicionar Filmes e Locais2Arrays Multidimensionais
Fundamentos de Arrays 2DAcessando Elementos de Arrays 2DLoops Aninhados com Arrays 2DRecapitulação - Arrays 2DAdição e Subtração de MatrizesArrays IrregularesArrays 3D e AlémPadrões Comuns de Arrays 2DRecapitulação - Tudo Sobre Arrays5Sets Parte 1
O que é um Set?Iterando sobre SetsAdicionando um elementoRemovendo um elementoVerificando se um elemento existeTamanho e Is EmptyCopy e ClearRecapitulação - O básico de Sets8Tópicos Interessantes sobre Arrays
Desestruturação de ArraysSintaxe Spread em ArraysArrays EsparsosRecapitulação - Workshop de Arrays3JSON Parte 1
O que é um JSON?Verificar se a Chave ExisteMétodos de ObjetoO Spread Operator Parte 1O Spread Operator Parte 2Remover ChavesRecapitulação - Manipular Chaves JSON