Maison > interface Web > js tutoriel > 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
Libérer: 2024-10-22 13:03:03
original
397 Les gens l'ont consulté

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))
Copier après la connexion

Exemple :

Considérez l'objet imbriqué :

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

Aplatir cet objet donne :

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

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!

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal