Supprimer les attributs vides d'un objet en JavaScript
En JavaScript, les objets peuvent avoir des propriétés non définies ou nulles, ce qui peut encombrer le code et rendent le travail plus difficile. Pour remédier à cela, nous pouvons supprimer ces attributs vides d'un objet en utilisant diverses techniques.
ES10/ES2019
Ces méthodes utilisent l'introduction de Object.fromEntries() méthode :
- Une seule ligne : soit o = Object.fromEntries(Object.entries(obj).filter(([_, v]) => v != null));
- Identique à ci-dessus mais en fonction : function removeEmpty(obj) { return Object.fromEntries(Object.entries(obj).filter(([_, v]) => v != null)); >
- Une version récursive pour supprimer des éléments des objets imbriqués : function removeEmpty(obj) { return Object.fromEntries( Object.entries(obj) .filter(([_, v]) => v != null) .map(([k, v]) => [k, v === Object(v) ? RemoveEmpty(v) : v]) ); >
ES6/ES2015
- Une ligne unique en mutation : Object.keys(obj).forEach((k) => obj [k] == null && delete obj[k]);
- Une version non mutante : let o = Object.keys(obj) .filter((k) => obj[k] != null) .reduce((a, k) => ({ ...a, [k]: obj[k] } ), {});
- Similaire à ci-dessus, écrit sous forme de fonction : function removeEmpty(obj) { return Object.entries(obj) .filter(([_, v]) => v != null) .reduce((acc, [k, v]) => ({ ...acc, [k] : v }), {}); >
- Une fonction récursive pour gérer les objets imbriqués : function removeEmpty(obj) { return Object.entries(obj) .filter(([_, v]) => v != null) .reduce( ( acc, [k, v]) => ({ ...acc, [k] : v === Objet(v) ? RemoveEmpty(v) : v }), {} ); >
ES5/ES2009
- Une version fonctionnelle non récursive : function removeEmpty(obj) { return Object.keys(obj) .filter (function (k) { return obj[k] != null; }) .reduce(function (acc, k) { acc[k] = obj[k]; return acc; >
- Une version fonctionnelle récursive : function removeEmpty(obj) { return Object.keys(obj) .filter(function (k) { return obj[k] != null; }) .reduce(function (acc , k) { acc[k] = typeof obj[k] === "objet" ? acc; >
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