Compreendendo o problema
Freqüentemente, encontramos estruturas de dados complexas em aplicativos JavaScript. Essas estruturas podem ser objetos profundamente aninhados, tornando difícil manipulá-las ou processá-las diretamente. Uma operação comum é nivelar esses objetos, transformando-os em uma estrutura mais simples onde todas as propriedades estão no nível superior.
Neste blog, nos aprofundaremos em um trecho de código JavaScript que efetivamente nivela um objeto profundamente aninhado. Dividiremos o código linha por linha, explicando sua lógica e funcionalidade.
Detalhamento do código
let user = { name : 'Chiranjit', address : { personal : { city: 'Kolkata', state: 'West Bengal' }, office : { city: 'Bengaluru', state: 'Karnataka', area: { landmark:'Waterside', post: 433101 } } } } var finalObj = {} const flatObjFn = (obj, parent) => { for(let key in obj){ if(typeof obj[key] === 'object'){ flatObjFn(obj[key], parent '_' key) }else{ finalObj[parent '_' key] = obj[key] } } } flatObjFn(user, 'user'); console.log(finalObj);
Explicação linha por linha
Inicializando o objeto de saída:
Definindo a função de nivelamento:
Iterando por meio de propriedades do objeto:
Tratamento de objetos aninhados:
Tratamento de valores primitivos:
Chamando a função de nivelamento:
Registrando o objeto achatado:
Como funciona?
A função flatObjFn percorre recursivamente o objeto, dividindo estruturas aninhadas em um objeto plano. O parâmetro pai controla a hierarquia do objeto, permitindo que a função crie nomes de propriedades significativos no objeto de saída.
Vamos nos conectar no Twitter ou LinkedIn
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3