Maison >interface Web >js tutoriel >Comment puis-je supprimer les attributs nuls et non définis d'un objet JavaScript ?

Comment puis-je supprimer les attributs nuls et non définis d'un objet JavaScript ?

DDD
DDDoriginal
2024-12-02 00:53:10710parcourir

How Can I Remove Null and Undefined Attributes from a JavaScript Object?

Supprimer les attributs vides d'un objet en JavaScript

Les propriétés des objets JavaScript peuvent parfois contenir des valeurs non définies ou nulles. Cela peut entraîner des difficultés lors de l’utilisation des données et rendre difficile le maintien de la cohérence et de l’exactitude. La suppression de ces attributs vides peut être bénéfique pour optimiser le code et améliorer l'intégrité des données.

Présentation

Pour supprimer tous les attributs non définis ou nuls dans un objet JavaScript, vous pouvez utiliser les approches suivantes :

Itératif (Fonctionnel Style)

  1. ES10/ES2019 Exemple :

    let o = Object.fromEntries(Object.entries(obj).filter(([_, v]) => v != null));
  2. ES6/ES2015 Exemple :

    let o = Object.keys(obj)
      .filter((k) => obj[k] != null)
      .reduce((a, k) => ({ ...a, [k]: obj[k] }), {});

Itératif (style impératif)

  1. ES10/ES2019 Exemple :

    function removeEmpty(obj) {
      const newObj = {};
      Object.entries(obj).forEach(([k, v]) => {
        if (v === Object(v)) {
          newObj[k] = removeEmpty(v);
        } else if (v != null) {
          newObj[k] = obj[k];
        }
      });
      return newObj;
    }

Récursif

  1. ES10/ES2019 Exemple :

    function removeEmpty(obj) {
      return Object.fromEntries(
        Object.entries(obj)
          .filter(([_, v]) => v != null)
          .map(([k, v]) => [k, v === Object(v) ? removeEmpty(v) : v])
      );
    }

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