Aplatir les objets imbriqués de manière concise
La transformation d'un objet imbriqué en une structure aplatie est souvent nécessaire dans divers scénarios de programmation. Pour une solution rapide et efficace, vous pouvez utiliser une ligne concise.
Pour aplatir l'objet imbriqué fourni :
{ a:2, b: { c:3 } }
dans la sortie souhaitée :
{ a:2, c:3 }
Utilisez l'expression JavaScript suivante :
Object.assign({}, ...function _flatten(o) { return [].concat(...Object.keys(o).map(k => typeof o[k] === 'object' ? _flatten(o[k]) : ({[k]: o[k]})))}(yourObject))
Le concept principal derrière cette approche est de créer de manière récursive un tableau d'objets à propriété unique. La méthode Object.keys(o) récupère toutes les clés de l'objet d'entrée o. Chaque clé k est ensuite vérifiée pour le type d'objet. Si typeof o[k] === 'object', la fonction _flatten est appliquée de manière récursive à l'objet imbriqué. Sinon, il construit un objet à une propriété avec la clé k et la valeur o[k].
La syntaxe [].concat(... combine tous ces objets à une propriété en un seul tableau. Enfin, Object.assign({}, ...) fusionne ces tableaux dans la sortie aplatie souhaitée.
Pour plus de lisibilité, le code peut être reformaté comme suit :
Object.assign( {}, ...function _flatten(o) { return [].concat(...Object.keys(o) .map(k => typeof o[k] === 'object' ? _flatten(o[k]) : ({[k]: o[k]}) ) ); }(yourObject) )
Celui-ci- liner aplatit efficacement les objets imbriqués, offrant une solution concise et efficace pour vos besoins de transformation de données.
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!