Maison  >  Article  >  interface Web  >  Comment aplatir des objets imbriqués en JavaScript avec une seule ligne de code ?

Comment aplatir des objets imbriqués en JavaScript avec une seule ligne de code ?

Barbara Streisand
Barbara Streisandoriginal
2024-10-22 13:03:03292parcourir

How Do I Flatten Nested Objects in JavaScript with One Line of Code?

Aplatir des objets imbriqués avec une seule ligne

En JavaScript, la tâche d'aplatir les objets imbriqués se pose fréquemment. Cette opération consiste à transformer un objet complexe à niveaux imbriqués en un objet mono-niveau. Bien qu'il existe différentes approches pour y parvenir, nous allons nous pencher sur une solution en une seule ligne qui exploite les fonctionnalités JavaScript modernes.

L'extrait fourni aplatit efficacement les objets imbriqués à l'aide de la méthode Object.assign(). Il combine un tableau d'objets à propriété unique créés via une fonction récursive (_flatten). Cette fonction parcourt chaque clé de l'objet d'entrée et soit s'appelle si la valeur est un autre objet, soit crée un objet avec une seule paire propriété-valeur dans le cas contraire.

Implémentation :

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

Exemple :

Considérez l'objet imbriqué :

{
  a:2,
  b: {
    c:3
  }
}

Aplatir cet objet donne :

{
  a:2,
  c:3
}

Avantages :

  • Concision : Permet d'aplatir les objets en une seule ligne de code.
  • Polyvalence : Adaptable à la fois au JavaScript pur et aux bibliothèques populaires comme Underscore .
  • Flexibilité : Utilise une fonction récursive (_flatten) pour gérer les structures imbriquées de manière dynamique.

Considérations :

  • Compatibilité ES6 : Nécessite la prise en charge des fonctionnalités JavaScript modernes telles que Object.assign et l'opérateur de propagation.
  • Zéro-itération : La fonction récursive explore tous les chemins dans l'objet imbriqué simultanément, ce qui peut affecter les performances des objets volumineux.

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!

Déclaration:
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
Article précédent:Lier des variables en PL/SQLArticle suivant:Lier des variables en PL/SQL