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

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

Patricia Arquette
Patricia Arquetteoriginal
2024-10-22 13:05:17941parcourir

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

Flattening Nested Objects with a One-Liner

To flatten nested objects, you can employ the following one-line solution:

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

This one-liner can flatten objects with nested properties, converting them into flat objects with one-level properties.

How It Works:

  1. Recursive Function _flatten: The function recursively traverses the object, flattening any nested properties.
  2. Spread Operator (ES6): Inside the _flatten function, the spread operator ... is used to create an array of one-property objects from each property in the object ({[k]: o[k]}).
  3. Concatenation: The Object.keys(o) function returns an array of property names, and the [].concat function is used to concatenate the arrays of one-property objects into a single array.
  4. Object.assign Function (ES6): The Object.assign function is used to combine the flattened arrays of one-property objects into a single, flattened object.

Example:

Using the example object:

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

The one-line solution will produce the flattened object:

{
  a: 2,
  c: 3
}

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