"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment aplatir des objets imbriqués avec une solution sur une seule ligne ?

Comment aplatir des objets imbriqués avec une solution sur une seule ligne ?

Publié le 2024-11-09
Parcourir:862

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

Solution en une seule ligne pour aplatir les objets imbriqués

Dans le domaine de la manipulation de données, l'aplatissement des objets imbriqués est une tâche courante. Vous devrez peut-être transformer un objet complexe avec plusieurs niveaux d'imbrication en un objet plus simple avec un seul niveau de clés et de valeurs. Une approche efficace consiste à utiliser une ligne concise :

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

Décomposons ce one-liner :

  • Le principe est de parcourir l'objet de manière récursive et de construire un tableau d'objets imbriqués à une propriété.
  • La méthode Object.assign est ensuite utilisée pour combiner ces objets en un seul objet aplati.
  • La fonction _flatten est un assistant récursif qui descend dans les objets imbriqués, créant des objets à propriété unique basés sur des paires clé-valeur.
  • Ce processus continue jusqu'à ce que tous les objets imbriqués aient été aplatis.

Pour utiliser cette ligne unique, transmettez simplement votre objet imbriqué dans l'espace réservé yourObject. L'objet aplati résultant sera accessible en tant que sortie de l'expression.

Déclaration de sortie Cet article est réimprimé à l'adresse : 1729573516. En cas d'infraction, veuillez contacter [email protected] pour le supprimer.
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3