Maison > interface Web > js tutoriel > Comment aplatir des objets imbriqués de manière concise en JavaScript ?

Comment aplatir des objets imbriqués de manière concise en JavaScript ?

DDD
Libérer: 2024-10-22 13:36:02
original
758 Les gens l'ont consulté

How to Flatten Nested Objects Concisely in JavaScript?

Aplatir les objets imbriqués de manière concise

La transformation d'un objet imbriqué en une structure aplatie est souvent nécessaire dans divers scénarios de programmation. Pour une solution rapide et efficace, vous pouvez utiliser une ligne concise.

Pour aplatir l'objet imbriqué fourni :

{
  a:2,
  b: {
    c:3
  }
}
Copier après la connexion

dans la sortie souhaitée :

{
  a:2,
  c:3
}
Copier après la connexion

Utilisez l'expression JavaScript suivante :

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

Le concept principal derrière cette approche est de créer de manière récursive un tableau d'objets à propriété unique. La méthode Object.keys(o) récupère toutes les clés de l'objet d'entrée o. Chaque clé k est ensuite vérifiée pour le type d'objet. Si typeof o[k] === 'object', la fonction _flatten est appliquée de manière récursive à l'objet imbriqué. Sinon, il construit un objet à une propriété avec la clé k et la valeur o[k].

La syntaxe [].concat(... combine tous ces objets à une propriété en un seul tableau. Enfin, Object.assign({}, ...) fusionne ces tableaux dans la sortie aplatie souhaitée.

Pour plus de lisibilité, le code peut être reformaté comme suit :

Object.assign(
  {},
  ...function _flatten(o) {
    return [].concat(...Object.keys(o)
      .map(k =>
        typeof o[k] === 'object' ?
          _flatten(o[k]) :
          ({[k]: o[k]})
      )
    );
  }(yourObject)
)
Copier après la connexion

Celui-ci- liner aplatit efficacement les objets imbriqués, offrant une solution concise et efficace pour vos besoins de transformation de données.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal