"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo aplanar objetos anidados con una solución unilineal?

¿Cómo aplanar objetos anidados con una solución unilineal?

Publicado el 2024-11-09
Navegar:558

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

Solución unifilar para aplanar objetos anidados

En el ámbito de la manipulación de datos, aplanar objetos anidados es una tarea común. Es posible que necesite transformar un objeto complejo con múltiples niveles de anidamiento en uno más simple con un único nivel de claves y valores. Un enfoque eficaz es utilizar una frase concisa:

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

Desglosemos esta frase:

  • La premisa es atravesar recursivamente el objeto y construir una matriz de objetos anidados. objetos de una sola propiedad.
  • El método Object.assign se usa luego para combinar estos objetos en un solo objeto aplanado.
  • La función _flatten es un asistente recursivo que desciende a objetos anidados, creando objetos de una propiedad basados ​​en pares clave-valor.
  • Este proceso continúa hasta que todos los objetos anidados hayan sido aplanados.

Para usar esto En una sola línea, simplemente pase su objeto anidado al marcador de posición yourObject. Se podrá acceder al objeto aplanado resultante como resultado de la expresión.

Declaración de liberación Este artículo se reimprime en: 1729573516 Si hay alguna infracción, comuníquese con [email protected] para eliminarla.
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3