Maison >interface Web >js tutoriel >Comment puis-je ajouter des membres d'objet de manière conditionnelle en JavaScript sans propriétés non définies ?

Comment puis-je ajouter des membres d'objet de manière conditionnelle en JavaScript sans propriétés non définies ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-23 10:27:45793parcourir

How Can I Add Object Members Conditionally in JavaScript Without Undefined Properties?

Ajout conditionnel de membres d'objet en JavaScript

En JavaScript, il est courant d'ajouter des membres aux objets de manière dynamique. Cependant, lorsque ces ajouts doivent être conditionnels, l'approche la plus simple conduit souvent à des membres non définis.

Dans la tentative de créer un code idiomatique :

a = {
    b: (someCondition? 5 : undefined)
};

le membre b est ajouté au un objet quel que soit le résultat someCondition, ce qui fait que sa valeur n'est pas définie si la condition est fausse.

Pour résoudre ce problème, une solution plus concise peut être utilisée en utilisant le spread opérateur (...) et évaluation logique ET de court-circuit (&&) :

const a = {
   ...(someCondition && {b: 5})
}

Ce code élimine le besoin d'opérateurs conditionnels. L'opérateur spread développe les accolades dans l'objet a, en ajoutant le membre b si someCondition est vraie. L'évaluation logique ET de court-circuit garantit que les accolades ne sont évaluées que si someCondition est vraie, empêchant ainsi l'ajout d'un membre non défini.

Cette approche peut être facilement étendue pour gérer plusieurs membres conditionnels :

const a = {
   ...(conditionB && {b: 5}),
   ...(conditionC && {c: 5}),
   ...(conditionD && {d: 5}),
   ...(conditionE && {e: 5}),
   ...(conditionF && {f: 5}),
   ...(conditionG && {g: 5}),
}

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