Maison >interface Web >js tutoriel >Comment puis-je ajouter conditionnellement des membres aux objets JavaScript avec élégance ?

Comment puis-je ajouter conditionnellement des membres aux objets JavaScript avec élégance ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-19 21:40:12915parcourir

How Can I Conditionally Add Members to JavaScript Objects Elegantly?

Insertion conditionnelle de membres dans les objets JavaScript : une solution moderne

Alors que l'approche traditionnelle consistant à ajouter conditionnellement des membres à un objet en utilisant des instructions if est simple, il peut être unidiomatique et verbeux. Une solution plus élégante consiste à exploiter l’opérateur ternaire conditionnel ?: dans le littéral objet. Cependant, cette approche entraîne des valeurs de membre non définies lorsque la condition est évaluée comme fausse.

Pour résoudre ce problème, une solution plus robuste consiste à utiliser l'opérateur de propagation (...) en conjonction avec une évaluation logique ET de court-circuit. . Cette technique permet l'inclusion conditionnelle de plusieurs membres dans une seule expression :

const a = {
    ...(someCondition1 && {b: 5}),
    ...(someCondition2 && {c: 6}),
    ...(someCondition3 && {d: 7}),
    // ... and so on
};

Dans ce scénario, l'opérateur de propagation étend les littéraux d'objet en propriétés individuelles au sein de l'objet a englobant. L'opérateur logique ET && garantit que chaque propriété n'est incluse que si sa condition correspondante est évaluée comme vraie.

Cette approche évite les valeurs de propriété non définies en forçant les fausses conditions à être indéfinies via l'évaluation du court-circuit. De ce fait, l'objet résultant ne contiendra que des propriétés qui correspondent aux conditions remplies.

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