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

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

Susan Sarandon
Susan Sarandonoriginal
2024-10-22 13:17:03123parcourir

How to Flatten Nested Objects with a Single Line of JS Code?

Aplatir les objets imbriqués avec une seule ligne

Aplatir les objets imbriqués est une tâche courante en programmation, et c'est encore plus simple avec le JavaScript moderne . Voici une solution sur une ligne qui utilise l'opérateur spread et Object.assign :

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

Comment ça marche :

Ce code utilise une fonction récursive, _flatten, qui traverse l'objet imbriqué et crée un tableau d'objets à une propriété. Chaque nom de propriété est mappé à sa valeur correspondante, et si la valeur est un autre objet, la fonction revient dans cet objet.

L'opérateur de propagation (...) est utilisé pour aplatir le tableau d'objets créé par _flatten . Le tableau résultant est ensuite transmis à Object.assign, qui combine tous les objets en un seul objet aplati.

Exemple d'entrée et de sortie :

Considérez les éléments imbriqués suivants object :

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

L'exécution du code fourni sur cet objet produira le résultat aplati :

{
  a: 2,
  c: 3
}

Remarque :

Cette solution utilise Fonctionnalités ES6, vous devrez donc peut-être l'ajuster si vous utilisez un environnement JavaScript plus ancien.

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