"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como nivelar objetos aninhados com uma solução unifilar?

Como nivelar objetos aninhados com uma solução unifilar?

Publicado em 2024-11-09
Navegar:841

How to Flatten Nested Objects with a One-Line Solution?

Solução de uma linha para nivelar objetos aninhados

No domínio da manipulação de dados, nivelar objetos aninhados é uma tarefa comum. Talvez seja necessário transformar um objeto complexo com vários níveis de aninhamento em um objeto mais simples com um único nível de chaves e valores. Uma abordagem eficiente é utilizar uma linha concisa:

Object.assign({}, ...function _flatten(o) { return [].concat(...Object.keys(o).map(k => typeof o[k] === 'object' ? _flatten(o[k]) : ({[k]: o[k]})))}(yourObject))

Vamos detalhar esta linha única:

  • A premissa é percorrer recursivamente o objeto e construir uma matriz de objetos de uma propriedade aninhados.
  • O método Object.assign é então usado para combinar esses objetos em um único objeto nivelado.
  • A função _flatten é um auxiliar recursivo que desce em objetos aninhados, criando objetos de uma propriedade com base em pares de valores-chave.
  • Este processo continua até que todos os objetos aninhados tenham sido nivelados.

Para usar esta linha única, simplesmente passe seu objeto aninhado para o espaço reservado yourObject. O objeto achatado resultante estará acessível como saída da expressão.

Declaração de lançamento Este artigo foi reimpresso em: 1729573516 Se houver alguma violação, entre em contato com [email protected] para excluí-lo
Tutorial mais recente Mais>

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